<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>CryptoAuthLib: Hardware abstraction layer (hal_)</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">CryptoAuthLib
   </div>
   <div id="projectbrief">Microchip CryptoAuthentication Library</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.15 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('a00993.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">Hardware abstraction layer (hal_)</div>  </div>
</div><!--header-->
<div class="contents">

<p>These methods define the hardware abstraction layer for communicating with a CryptoAuth device.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a01109.html">ATCAHAL_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">an intermediary data structure to allow the HAL layer to point the standard API functions used by the upper layers to the HAL implementation for the interface. This isolates the upper layers and loosely couples the ATCAIface object from the physical implementation.  <a href="a01109.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a01113.html">atcahid</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a01117.html">atcaI2Cmaster</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">this is the hal_data for ATCA HAL created using ASF  <a href="a01117.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a01121.html">cdc_device</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a01125.html">atcacdc</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a01129.html">hid_device</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a01133.html">DRV_I2C_Object</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a01137.html">atcaSWImaster</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the hal_data for ATCA HAL.  <a href="a01137.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga49053c3cd6d48fe5f468ce010ac0a9ef"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga49053c3cd6d48fe5f468ce010ac0a9ef">HID_DEVICES_MAX</a>&#160;&#160;&#160;10</td></tr>
<tr class="separator:ga49053c3cd6d48fe5f468ce010ac0a9ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6cdff3589b286ebcdd7771bb425fbf73"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga6cdff3589b286ebcdd7771bb425fbf73">HID_PACKET_MAX</a>&#160;&#160;&#160;512</td></tr>
<tr class="separator:ga6cdff3589b286ebcdd7771bb425fbf73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf89a7a4080a47aa10a5504291db285bf"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gaf89a7a4080a47aa10a5504291db285bf">MAX_I2C_BUSES</a>&#160;&#160;&#160;1</td></tr>
<tr class="separator:gaf89a7a4080a47aa10a5504291db285bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf89a7a4080a47aa10a5504291db285bf"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gaf89a7a4080a47aa10a5504291db285bf">MAX_I2C_BUSES</a>&#160;&#160;&#160;6</td></tr>
<tr class="separator:gaf89a7a4080a47aa10a5504291db285bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf89a7a4080a47aa10a5504291db285bf"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gaf89a7a4080a47aa10a5504291db285bf">MAX_I2C_BUSES</a>&#160;&#160;&#160;2</td></tr>
<tr class="separator:gaf89a7a4080a47aa10a5504291db285bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaffe776513b24d84b39af8ab0930fef7f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gaffe776513b24d84b39af8ab0930fef7f">max</a>(a,  b)&#160;&#160;&#160;(((a) &gt; (b)) ? (a) : (b))</td></tr>
<tr class="separator:gaffe776513b24d84b39af8ab0930fef7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac6afabdc09a49a433ee19d8a9486056d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gac6afabdc09a49a433ee19d8a9486056d">min</a>(a,  b)&#160;&#160;&#160;(((a) &lt; (b)) ? (a) : (b))</td></tr>
<tr class="separator:gac6afabdc09a49a433ee19d8a9486056d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga08b6c05184266dc4d5c8727bb9c1c754"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga08b6c05184266dc4d5c8727bb9c1c754">CDC_DEVICES_MAX</a>&#160;&#160;&#160;10</td></tr>
<tr class="separator:ga08b6c05184266dc4d5c8727bb9c1c754"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5ac8c9377f90d6ce3044f81f900a54fe"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga5ac8c9377f90d6ce3044f81f900a54fe">CDC_BUFFER_MAX</a>&#160;&#160;&#160;1024</td></tr>
<tr class="separator:ga5ac8c9377f90d6ce3044f81f900a54fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5fdc7facea201bfce4ad308105f88d0c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga5fdc7facea201bfce4ad308105f88d0c">INVALID_HANDLE_VALUE</a>&#160;&#160;&#160;((int)(-1))</td></tr>
<tr class="separator:ga5fdc7facea201bfce4ad308105f88d0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga49053c3cd6d48fe5f468ce010ac0a9ef"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga49053c3cd6d48fe5f468ce010ac0a9ef">HID_DEVICES_MAX</a>&#160;&#160;&#160;10</td></tr>
<tr class="separator:ga49053c3cd6d48fe5f468ce010ac0a9ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6cdff3589b286ebcdd7771bb425fbf73"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga6cdff3589b286ebcdd7771bb425fbf73">HID_PACKET_MAX</a>&#160;&#160;&#160;512</td></tr>
<tr class="separator:ga6cdff3589b286ebcdd7771bb425fbf73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2f50cb3bdd9fd741e11f2389ea1bff4a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga2f50cb3bdd9fd741e11f2389ea1bff4a">GetSystemClock</a>()&#160;&#160;&#160;(80000000ul)</td></tr>
<tr class="separator:ga2f50cb3bdd9fd741e11f2389ea1bff4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1b199a0aedb00251513eb57552f738b4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga1b199a0aedb00251513eb57552f738b4">GetPeripheralClock</a>()&#160;&#160;&#160;(<a class="el" href="a00993.html#ga2f50cb3bdd9fd741e11f2389ea1bff4a">GetSystemClock</a>() / (1 &lt;&lt; OSCCONbits.PBDIV))</td></tr>
<tr class="separator:ga1b199a0aedb00251513eb57552f738b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga450d95819e5184befaec71050a61dce9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga450d95819e5184befaec71050a61dce9">GetInstructionClock</a>()&#160;&#160;&#160;(<a class="el" href="a00993.html#ga2f50cb3bdd9fd741e11f2389ea1bff4a">GetSystemClock</a>())</td></tr>
<tr class="separator:ga450d95819e5184befaec71050a61dce9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf89a7a4080a47aa10a5504291db285bf"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gaf89a7a4080a47aa10a5504291db285bf">MAX_I2C_BUSES</a>&#160;&#160;&#160;4</td></tr>
<tr class="separator:gaf89a7a4080a47aa10a5504291db285bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga512016e5f1966a8fd45b3f1a81ba5b8f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga512016e5f1966a8fd45b3f1a81ba5b8f">CPU_CLOCK</a>&#160;&#160;&#160;(80000000UL)</td></tr>
<tr class="separator:ga512016e5f1966a8fd45b3f1a81ba5b8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5a8416082aa7664c94099d3d787eee3c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga5a8416082aa7664c94099d3d787eee3c">us_SCALE</a>&#160;&#160;&#160;((<a class="el" href="a00993.html#ga512016e5f1966a8fd45b3f1a81ba5b8f">CPU_CLOCK</a> / 2) / 1000000)</td></tr>
<tr class="separator:ga5a8416082aa7664c94099d3d787eee3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga779f5e5d060c6d43dd09752eeb2a2bb3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga779f5e5d060c6d43dd09752eeb2a2bb3">HARMONY_I2C_DRIVER</a>&#160;&#160;&#160;1</td></tr>
<tr class="separator:ga779f5e5d060c6d43dd09752eeb2a2bb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf89a7a4080a47aa10a5504291db285bf"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gaf89a7a4080a47aa10a5504291db285bf">MAX_I2C_BUSES</a>&#160;&#160;&#160;3</td></tr>
<tr class="separator:gaf89a7a4080a47aa10a5504291db285bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2f50cb3bdd9fd741e11f2389ea1bff4a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga2f50cb3bdd9fd741e11f2389ea1bff4a">GetSystemClock</a>()&#160;&#160;&#160;(200000000UL)/* Fcy = 200MHz */</td></tr>
<tr class="separator:ga2f50cb3bdd9fd741e11f2389ea1bff4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5a8416082aa7664c94099d3d787eee3c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga5a8416082aa7664c94099d3d787eee3c">us_SCALE</a>&#160;&#160;&#160;(<a class="el" href="a00993.html#ga2f50cb3bdd9fd741e11f2389ea1bff4a">GetSystemClock</a>() / 2000000)</td></tr>
<tr class="separator:ga5a8416082aa7664c94099d3d787eee3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf89a7a4080a47aa10a5504291db285bf"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gaf89a7a4080a47aa10a5504291db285bf">MAX_I2C_BUSES</a>&#160;&#160;&#160;2</td></tr>
<tr class="separator:gaf89a7a4080a47aa10a5504291db285bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf89a7a4080a47aa10a5504291db285bf"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gaf89a7a4080a47aa10a5504291db285bf">MAX_I2C_BUSES</a>&#160;&#160;&#160;2</td></tr>
<tr class="separator:gaf89a7a4080a47aa10a5504291db285bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf89a7a4080a47aa10a5504291db285bf"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gaf89a7a4080a47aa10a5504291db285bf">MAX_I2C_BUSES</a>&#160;&#160;&#160;6</td></tr>
<tr class="separator:gaf89a7a4080a47aa10a5504291db285bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf89a7a4080a47aa10a5504291db285bf"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gaf89a7a4080a47aa10a5504291db285bf">MAX_I2C_BUSES</a>&#160;&#160;&#160;2</td></tr>
<tr class="separator:gaf89a7a4080a47aa10a5504291db285bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf89a7a4080a47aa10a5504291db285bf"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gaf89a7a4080a47aa10a5504291db285bf">MAX_I2C_BUSES</a>&#160;&#160;&#160;3</td></tr>
<tr class="separator:gaf89a7a4080a47aa10a5504291db285bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8f12e3b749e7b3dc905114cc7b8d0b38"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga8f12e3b749e7b3dc905114cc7b8d0b38">SWI_WAKE_TOKEN</a>&#160;&#160;&#160;((uint8_t)0x00)</td></tr>
<tr class="memdesc:ga8f12e3b749e7b3dc905114cc7b8d0b38"><td class="mdescLeft">&#160;</td><td class="mdescRight">flag preceding a command  <a href="#ga8f12e3b749e7b3dc905114cc7b8d0b38">More...</a><br /></td></tr>
<tr class="separator:ga8f12e3b749e7b3dc905114cc7b8d0b38"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga13c01ac16bb14fde75e9c00dcd1cc761"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga13c01ac16bb14fde75e9c00dcd1cc761">SWI_FLAG_CMD</a>&#160;&#160;&#160;((uint8_t)0x77)</td></tr>
<tr class="memdesc:ga13c01ac16bb14fde75e9c00dcd1cc761"><td class="mdescLeft">&#160;</td><td class="mdescRight">flag preceding a command  <a href="#ga13c01ac16bb14fde75e9c00dcd1cc761">More...</a><br /></td></tr>
<tr class="separator:ga13c01ac16bb14fde75e9c00dcd1cc761"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga20af8352e13a7357650ba1cbf41349ea"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga20af8352e13a7357650ba1cbf41349ea">SWI_FLAG_TX</a>&#160;&#160;&#160;((uint8_t)0x88)</td></tr>
<tr class="memdesc:ga20af8352e13a7357650ba1cbf41349ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">flag requesting a response  <a href="#ga20af8352e13a7357650ba1cbf41349ea">More...</a><br /></td></tr>
<tr class="separator:ga20af8352e13a7357650ba1cbf41349ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6219d68ef915fdcd734f51960ba08fb6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga6219d68ef915fdcd734f51960ba08fb6">SWI_FLAG_IDLE</a>&#160;&#160;&#160;((uint8_t)0xBB)</td></tr>
<tr class="memdesc:ga6219d68ef915fdcd734f51960ba08fb6"><td class="mdescLeft">&#160;</td><td class="mdescRight">flag requesting to go into Idle mode  <a href="#ga6219d68ef915fdcd734f51960ba08fb6">More...</a><br /></td></tr>
<tr class="separator:ga6219d68ef915fdcd734f51960ba08fb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga13ef2322176ad9b7ba3d2e23b277cce6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga13ef2322176ad9b7ba3d2e23b277cce6">SWI_FLAG_SLEEP</a>&#160;&#160;&#160;((uint8_t)0xCC)</td></tr>
<tr class="memdesc:ga13ef2322176ad9b7ba3d2e23b277cce6"><td class="mdescLeft">&#160;</td><td class="mdescRight">flag requesting to go into Sleep mode  <a href="#ga13ef2322176ad9b7ba3d2e23b277cce6">More...</a><br /></td></tr>
<tr class="separator:ga13ef2322176ad9b7ba3d2e23b277cce6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafa87510c678a9963da73988da4dd44f7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gafa87510c678a9963da73988da4dd44f7">HID_GUID</a>&#160;&#160;&#160;{ 0x4d1e55b2, 0xf16f, 0x11cf, 0x88, 0xcb, 0x00, 0x11, 0x11, 0x00, 0x00, 0x30 }</td></tr>
<tr class="separator:gafa87510c678a9963da73988da4dd44f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga49053c3cd6d48fe5f468ce010ac0a9ef"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga49053c3cd6d48fe5f468ce010ac0a9ef">HID_DEVICES_MAX</a>&#160;&#160;&#160;10</td></tr>
<tr class="separator:ga49053c3cd6d48fe5f468ce010ac0a9ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6cdff3589b286ebcdd7771bb425fbf73"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga6cdff3589b286ebcdd7771bb425fbf73">HID_PACKET_MAX</a>&#160;&#160;&#160;512</td></tr>
<tr class="separator:ga6cdff3589b286ebcdd7771bb425fbf73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf89a7a4080a47aa10a5504291db285bf"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gaf89a7a4080a47aa10a5504291db285bf">MAX_I2C_BUSES</a>&#160;&#160;&#160;4</td></tr>
<tr class="separator:gaf89a7a4080a47aa10a5504291db285bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8d90399e7f84850d1e8d4cd5e9f67fa8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga8d90399e7f84850d1e8d4cd5e9f67fa8">KIT_MAX_SCAN_COUNT</a>&#160;&#160;&#160;4</td></tr>
<tr class="separator:ga8d90399e7f84850d1e8d4cd5e9f67fa8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadc1b033607e06cff7464dc0a49df2744"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gadc1b033607e06cff7464dc0a49df2744">KIT_MAX_TX_BUF</a>&#160;&#160;&#160;32</td></tr>
<tr class="separator:gadc1b033607e06cff7464dc0a49df2744"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8a649555029d4f23edfc15a8c01b2d3d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga8a649555029d4f23edfc15a8c01b2d3d">KIT_TX_WRAP_SIZE</a>&#160;&#160;&#160;(7)</td></tr>
<tr class="separator:ga8a649555029d4f23edfc15a8c01b2d3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0810d89c328e48fd91eb604323cca4e9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga0810d89c328e48fd91eb604323cca4e9">KIT_MSG_SIZE</a>&#160;&#160;&#160;(32)</td></tr>
<tr class="separator:ga0810d89c328e48fd91eb604323cca4e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga59e33124fc2fa800cc9c90a6ee3ff543"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga59e33124fc2fa800cc9c90a6ee3ff543">KIT_RX_WRAP_SIZE</a>&#160;&#160;&#160;(<a class="el" href="a00993.html#ga0810d89c328e48fd91eb604323cca4e9">KIT_MSG_SIZE</a> + 6)</td></tr>
<tr class="separator:ga59e33124fc2fa800cc9c90a6ee3ff543"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf9d9d027ce20f528edea144203141714"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gaf9d9d027ce20f528edea144203141714">MAX_SWI_BUSES</a>&#160;&#160;&#160;1</td></tr>
<tr class="separator:gaf9d9d027ce20f528edea144203141714"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab45577245cf4a8ead70e2d56965f2df3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gab45577245cf4a8ead70e2d56965f2df3">RECEIVE_MODE</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:gab45577245cf4a8ead70e2d56965f2df3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4b85133b317e72410ea0762d637d3460"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga4b85133b317e72410ea0762d637d3460">TRANSMIT_MODE</a>&#160;&#160;&#160;1</td></tr>
<tr class="separator:ga4b85133b317e72410ea0762d637d3460"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac55a27e4c3eae59bb1687eb7e8d1fe4b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gac55a27e4c3eae59bb1687eb7e8d1fe4b">RX_DELAY</a>&#160;&#160;&#160;10</td></tr>
<tr class="separator:gac55a27e4c3eae59bb1687eb7e8d1fe4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3f3816567a2f513dd0e1f9eb17992fb2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga3f3816567a2f513dd0e1f9eb17992fb2">TX_DELAY</a>&#160;&#160;&#160;90</td></tr>
<tr class="separator:ga3f3816567a2f513dd0e1f9eb17992fb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf9d9d027ce20f528edea144203141714"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gaf9d9d027ce20f528edea144203141714">MAX_SWI_BUSES</a>&#160;&#160;&#160;6</td></tr>
<tr class="separator:gaf9d9d027ce20f528edea144203141714"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab45577245cf4a8ead70e2d56965f2df3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gab45577245cf4a8ead70e2d56965f2df3">RECEIVE_MODE</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:gab45577245cf4a8ead70e2d56965f2df3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4b85133b317e72410ea0762d637d3460"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga4b85133b317e72410ea0762d637d3460">TRANSMIT_MODE</a>&#160;&#160;&#160;1</td></tr>
<tr class="separator:ga4b85133b317e72410ea0762d637d3460"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac55a27e4c3eae59bb1687eb7e8d1fe4b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gac55a27e4c3eae59bb1687eb7e8d1fe4b">RX_DELAY</a>&#160;&#160;&#160;10</td></tr>
<tr class="separator:gac55a27e4c3eae59bb1687eb7e8d1fe4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3f3816567a2f513dd0e1f9eb17992fb2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga3f3816567a2f513dd0e1f9eb17992fb2">TX_DELAY</a>&#160;&#160;&#160;90</td></tr>
<tr class="separator:ga3f3816567a2f513dd0e1f9eb17992fb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab12a92582aefe426bb194e0c298e8f98"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gab12a92582aefe426bb194e0c298e8f98">DEBUG_PIN_1</a>&#160;&#160;&#160;EXT2_PIN_5</td></tr>
<tr class="separator:gab12a92582aefe426bb194e0c298e8f98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6a2579114d13238c7ba20d147a74090a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga6a2579114d13238c7ba20d147a74090a">DEBUG_PIN_2</a>&#160;&#160;&#160;EXT2_PIN_6</td></tr>
<tr class="separator:ga6a2579114d13238c7ba20d147a74090a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf9d9d027ce20f528edea144203141714"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gaf9d9d027ce20f528edea144203141714">MAX_SWI_BUSES</a>&#160;&#160;&#160;6</td></tr>
<tr class="separator:gaf9d9d027ce20f528edea144203141714"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab45577245cf4a8ead70e2d56965f2df3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gab45577245cf4a8ead70e2d56965f2df3">RECEIVE_MODE</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:gab45577245cf4a8ead70e2d56965f2df3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4b85133b317e72410ea0762d637d3460"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga4b85133b317e72410ea0762d637d3460">TRANSMIT_MODE</a>&#160;&#160;&#160;1</td></tr>
<tr class="separator:ga4b85133b317e72410ea0762d637d3460"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac55a27e4c3eae59bb1687eb7e8d1fe4b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gac55a27e4c3eae59bb1687eb7e8d1fe4b">RX_DELAY</a>&#160;&#160;&#160;10</td></tr>
<tr class="separator:gac55a27e4c3eae59bb1687eb7e8d1fe4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3f3816567a2f513dd0e1f9eb17992fb2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga3f3816567a2f513dd0e1f9eb17992fb2">TX_DELAY</a>&#160;&#160;&#160;93</td></tr>
<tr class="separator:ga3f3816567a2f513dd0e1f9eb17992fb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf9d9d027ce20f528edea144203141714"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gaf9d9d027ce20f528edea144203141714">MAX_SWI_BUSES</a>&#160;&#160;&#160;6</td></tr>
<tr class="separator:gaf9d9d027ce20f528edea144203141714"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab45577245cf4a8ead70e2d56965f2df3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gab45577245cf4a8ead70e2d56965f2df3">RECEIVE_MODE</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:gab45577245cf4a8ead70e2d56965f2df3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4b85133b317e72410ea0762d637d3460"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga4b85133b317e72410ea0762d637d3460">TRANSMIT_MODE</a>&#160;&#160;&#160;1</td></tr>
<tr class="separator:ga4b85133b317e72410ea0762d637d3460"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac55a27e4c3eae59bb1687eb7e8d1fe4b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gac55a27e4c3eae59bb1687eb7e8d1fe4b">RX_DELAY</a>&#160;&#160;&#160;10</td></tr>
<tr class="separator:gac55a27e4c3eae59bb1687eb7e8d1fe4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3f3816567a2f513dd0e1f9eb17992fb2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga3f3816567a2f513dd0e1f9eb17992fb2">TX_DELAY</a>&#160;&#160;&#160;90</td></tr>
<tr class="separator:ga3f3816567a2f513dd0e1f9eb17992fb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga2416cca7ee952e679d466e3349d65035"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a01113.html">atcahid</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga2416cca7ee952e679d466e3349d65035">atcahid_t</a></td></tr>
<tr class="separator:ga2416cca7ee952e679d466e3349d65035"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae8f36006f14bf6a9f4914bac69ed9f98"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a01117.html">atcaI2Cmaster</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gae8f36006f14bf6a9f4914bac69ed9f98">ATCAI2CMaster_t</a></td></tr>
<tr class="memdesc:gae8f36006f14bf6a9f4914bac69ed9f98"><td class="mdescLeft">&#160;</td><td class="mdescRight">this is the hal_data for ATCA HAL created using ASF  <a href="#gae8f36006f14bf6a9f4914bac69ed9f98">More...</a><br /></td></tr>
<tr class="separator:gae8f36006f14bf6a9f4914bac69ed9f98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae8f36006f14bf6a9f4914bac69ed9f98"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a01117.html">atcaI2Cmaster</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gae8f36006f14bf6a9f4914bac69ed9f98">ATCAI2CMaster_t</a></td></tr>
<tr class="memdesc:gae8f36006f14bf6a9f4914bac69ed9f98"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the hal_data for ATCA HAL.  <a href="#gae8f36006f14bf6a9f4914bac69ed9f98">More...</a><br /></td></tr>
<tr class="separator:gae8f36006f14bf6a9f4914bac69ed9f98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae8f36006f14bf6a9f4914bac69ed9f98"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a01117.html">atcaI2Cmaster</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gae8f36006f14bf6a9f4914bac69ed9f98">ATCAI2CMaster_t</a></td></tr>
<tr class="memdesc:gae8f36006f14bf6a9f4914bac69ed9f98"><td class="mdescLeft">&#160;</td><td class="mdescRight">this is the hal_data for ATCA HAL for Atmel START SERCOM  <a href="#gae8f36006f14bf6a9f4914bac69ed9f98">More...</a><br /></td></tr>
<tr class="separator:gae8f36006f14bf6a9f4914bac69ed9f98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae8f36006f14bf6a9f4914bac69ed9f98"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a01117.html">atcaI2Cmaster</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gae8f36006f14bf6a9f4914bac69ed9f98">ATCAI2CMaster_t</a></td></tr>
<tr class="separator:gae8f36006f14bf6a9f4914bac69ed9f98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga069bb8cb95b0528d5ce0304bb5561a40"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga069bb8cb95b0528d5ce0304bb5561a40">HANDLE</a></td></tr>
<tr class="separator:ga069bb8cb95b0528d5ce0304bb5561a40"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga99ee56102171adcbcecb8a78fb9fa895"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a01121.html">cdc_device</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga99ee56102171adcbcecb8a78fb9fa895">cdc_device_t</a></td></tr>
<tr class="separator:ga99ee56102171adcbcecb8a78fb9fa895"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2df85bfd309840b4c9a5087e053d4811"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a01125.html">atcacdc</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga2df85bfd309840b4c9a5087e053d4811">atcacdc_t</a></td></tr>
<tr class="separator:ga2df85bfd309840b4c9a5087e053d4811"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5f2f61628e945fd6538155628fc3a17a"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a01129.html">hid_device</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga5f2f61628e945fd6538155628fc3a17a">hid_device_t</a></td></tr>
<tr class="separator:ga5f2f61628e945fd6538155628fc3a17a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2416cca7ee952e679d466e3349d65035"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a01113.html">atcahid</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga2416cca7ee952e679d466e3349d65035">atcahid_t</a></td></tr>
<tr class="separator:ga2416cca7ee952e679d466e3349d65035"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae8f36006f14bf6a9f4914bac69ed9f98"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a01117.html">atcaI2Cmaster</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gae8f36006f14bf6a9f4914bac69ed9f98">ATCAI2CMaster_t</a></td></tr>
<tr class="memdesc:gae8f36006f14bf6a9f4914bac69ed9f98"><td class="mdescLeft">&#160;</td><td class="mdescRight">this is the hal_data for ATCA HAL  <a href="#gae8f36006f14bf6a9f4914bac69ed9f98">More...</a><br /></td></tr>
<tr class="separator:gae8f36006f14bf6a9f4914bac69ed9f98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae8f36006f14bf6a9f4914bac69ed9f98"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a01117.html">atcaI2Cmaster</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gae8f36006f14bf6a9f4914bac69ed9f98">ATCAI2CMaster_t</a></td></tr>
<tr class="memdesc:gae8f36006f14bf6a9f4914bac69ed9f98"><td class="mdescLeft">&#160;</td><td class="mdescRight">this is the hal_data for ATCA HAL  <a href="#gae8f36006f14bf6a9f4914bac69ed9f98">More...</a><br /></td></tr>
<tr class="separator:gae8f36006f14bf6a9f4914bac69ed9f98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae8f36006f14bf6a9f4914bac69ed9f98"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a01117.html">atcaI2Cmaster</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gae8f36006f14bf6a9f4914bac69ed9f98">ATCAI2CMaster_t</a></td></tr>
<tr class="memdesc:gae8f36006f14bf6a9f4914bac69ed9f98"><td class="mdescLeft">&#160;</td><td class="mdescRight">this is the hal_data for ATCA HAL  <a href="#gae8f36006f14bf6a9f4914bac69ed9f98">More...</a><br /></td></tr>
<tr class="separator:gae8f36006f14bf6a9f4914bac69ed9f98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae8f36006f14bf6a9f4914bac69ed9f98"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a01117.html">atcaI2Cmaster</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gae8f36006f14bf6a9f4914bac69ed9f98">ATCAI2CMaster_t</a></td></tr>
<tr class="memdesc:gae8f36006f14bf6a9f4914bac69ed9f98"><td class="mdescLeft">&#160;</td><td class="mdescRight">this is the hal_data for ATCA HAL for ASF  <a href="#gae8f36006f14bf6a9f4914bac69ed9f98">More...</a><br /></td></tr>
<tr class="separator:gae8f36006f14bf6a9f4914bac69ed9f98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae8f36006f14bf6a9f4914bac69ed9f98"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a01117.html">atcaI2Cmaster</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gae8f36006f14bf6a9f4914bac69ed9f98">ATCAI2CMaster_t</a></td></tr>
<tr class="memdesc:gae8f36006f14bf6a9f4914bac69ed9f98"><td class="mdescLeft">&#160;</td><td class="mdescRight">this is the hal_data for ATCA HAL for ASF SERCOM  <a href="#gae8f36006f14bf6a9f4914bac69ed9f98">More...</a><br /></td></tr>
<tr class="separator:gae8f36006f14bf6a9f4914bac69ed9f98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae8f36006f14bf6a9f4914bac69ed9f98"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a01117.html">atcaI2Cmaster</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gae8f36006f14bf6a9f4914bac69ed9f98">ATCAI2CMaster_t</a></td></tr>
<tr class="memdesc:gae8f36006f14bf6a9f4914bac69ed9f98"><td class="mdescLeft">&#160;</td><td class="mdescRight">this is the hal_data for ATCA HAL  <a href="#gae8f36006f14bf6a9f4914bac69ed9f98">More...</a><br /></td></tr>
<tr class="separator:gae8f36006f14bf6a9f4914bac69ed9f98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae8f36006f14bf6a9f4914bac69ed9f98"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a01117.html">atcaI2Cmaster</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gae8f36006f14bf6a9f4914bac69ed9f98">ATCAI2CMaster_t</a></td></tr>
<tr class="memdesc:gae8f36006f14bf6a9f4914bac69ed9f98"><td class="mdescLeft">&#160;</td><td class="mdescRight">this is the hal_data for ATCA HAL for ASF SERCOM  <a href="#gae8f36006f14bf6a9f4914bac69ed9f98">More...</a><br /></td></tr>
<tr class="separator:gae8f36006f14bf6a9f4914bac69ed9f98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga257ed552f7d68eb1e5d3ca7baa01559a"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a01137.html">atcaSWImaster</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga257ed552f7d68eb1e5d3ca7baa01559a">ATCASWIMaster_t</a></td></tr>
<tr class="memdesc:ga257ed552f7d68eb1e5d3ca7baa01559a"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the hal_data for ATCA HAL.  <a href="#ga257ed552f7d68eb1e5d3ca7baa01559a">More...</a><br /></td></tr>
<tr class="separator:ga257ed552f7d68eb1e5d3ca7baa01559a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5f2f61628e945fd6538155628fc3a17a"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a01129.html">hid_device</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga5f2f61628e945fd6538155628fc3a17a">hid_device_t</a></td></tr>
<tr class="separator:ga5f2f61628e945fd6538155628fc3a17a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2416cca7ee952e679d466e3349d65035"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a01113.html">atcahid</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga2416cca7ee952e679d466e3349d65035">atcahid_t</a></td></tr>
<tr class="separator:ga2416cca7ee952e679d466e3349d65035"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae8f36006f14bf6a9f4914bac69ed9f98"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a01117.html">atcaI2Cmaster</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gae8f36006f14bf6a9f4914bac69ed9f98">ATCAI2CMaster_t</a></td></tr>
<tr class="memdesc:gae8f36006f14bf6a9f4914bac69ed9f98"><td class="mdescLeft">&#160;</td><td class="mdescRight">this is the hal_data for ATCA HAL created using ASF  <a href="#gae8f36006f14bf6a9f4914bac69ed9f98">More...</a><br /></td></tr>
<tr class="separator:gae8f36006f14bf6a9f4914bac69ed9f98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga257ed552f7d68eb1e5d3ca7baa01559a"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a01137.html">atcaSWImaster</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga257ed552f7d68eb1e5d3ca7baa01559a">ATCASWIMaster_t</a></td></tr>
<tr class="memdesc:ga257ed552f7d68eb1e5d3ca7baa01559a"><td class="mdescLeft">&#160;</td><td class="mdescRight">this is the hal_data for ATCA HAL for SWI UART  <a href="#ga257ed552f7d68eb1e5d3ca7baa01559a">More...</a><br /></td></tr>
<tr class="separator:ga257ed552f7d68eb1e5d3ca7baa01559a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga257ed552f7d68eb1e5d3ca7baa01559a"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a01137.html">atcaSWImaster</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga257ed552f7d68eb1e5d3ca7baa01559a">ATCASWIMaster_t</a></td></tr>
<tr class="memdesc:ga257ed552f7d68eb1e5d3ca7baa01559a"><td class="mdescLeft">&#160;</td><td class="mdescRight">this is the hal_data for ATCA HAL for ASF SERCOM  <a href="#ga257ed552f7d68eb1e5d3ca7baa01559a">More...</a><br /></td></tr>
<tr class="separator:ga257ed552f7d68eb1e5d3ca7baa01559a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga257ed552f7d68eb1e5d3ca7baa01559a"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a01137.html">atcaSWImaster</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga257ed552f7d68eb1e5d3ca7baa01559a">ATCASWIMaster_t</a></td></tr>
<tr class="memdesc:ga257ed552f7d68eb1e5d3ca7baa01559a"><td class="mdescLeft">&#160;</td><td class="mdescRight">this is the hal_data for ATCA HAL for ASF SERCOM  <a href="#ga257ed552f7d68eb1e5d3ca7baa01559a">More...</a><br /></td></tr>
<tr class="separator:ga257ed552f7d68eb1e5d3ca7baa01559a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga257ed552f7d68eb1e5d3ca7baa01559a"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a01137.html">atcaSWImaster</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga257ed552f7d68eb1e5d3ca7baa01559a">ATCASWIMaster_t</a></td></tr>
<tr class="memdesc:ga257ed552f7d68eb1e5d3ca7baa01559a"><td class="mdescLeft">&#160;</td><td class="mdescRight">this is the hal_data for ATCA HAL for SWI UART  <a href="#ga257ed552f7d68eb1e5d3ca7baa01559a">More...</a><br /></td></tr>
<tr class="separator:ga257ed552f7d68eb1e5d3ca7baa01559a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:gaa3e90779b37cd1b3a4d32321d9d8b772"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gaa3e90779b37cd1b3a4d32321d9d8b772">i2c_read_write_flag</a> { <a class="el" href="a00993.html#ggaa3e90779b37cd1b3a4d32321d9d8b772adbf6337ed546b3c21fd08c397a346bb2">I2C_WRITE</a> = (uint8_t)0x00, 
<a class="el" href="a00993.html#ggaa3e90779b37cd1b3a4d32321d9d8b772a30040082a257338fe25e5bd5136bc9a8">I2C_READ</a> = (uint8_t)0x01
 }</td></tr>
<tr class="memdesc:gaa3e90779b37cd1b3a4d32321d9d8b772"><td class="mdescLeft">&#160;</td><td class="mdescRight">This enumeration lists flags for I2C read or write addressing.  <a href="a00993.html#gaa3e90779b37cd1b3a4d32321d9d8b772">More...</a><br /></td></tr>
<tr class="separator:gaa3e90779b37cd1b3a4d32321d9d8b772"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8759b00e645502d0f1c3b7330e20e52b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga8759b00e645502d0f1c3b7330e20e52b">swi_flag</a> { <a class="el" href="a00993.html#gga8759b00e645502d0f1c3b7330e20e52babacdf58fcbc837d4c4e6d9640e157340">SWI_FLAG_CMD</a> = (uint8_t)0x77, 
<a class="el" href="a00993.html#gga8759b00e645502d0f1c3b7330e20e52ba17fa7af18b61921986085f42fc05cc9f">SWI_FLAG_TX</a> = (uint8_t)0x88, 
<a class="el" href="a00993.html#gga8759b00e645502d0f1c3b7330e20e52baeb0778b0887019be95260a2c0420d21a">SWI_FLAG_IDLE</a> = (uint8_t)0xBB, 
<a class="el" href="a00993.html#gga8759b00e645502d0f1c3b7330e20e52ba1d93b236433ad7d6c2b82659009f42f7">SWI_FLAG_SLEEP</a> = (uint8_t)0xCC
 }</td></tr>
<tr class="memdesc:ga8759b00e645502d0f1c3b7330e20e52b"><td class="mdescLeft">&#160;</td><td class="mdescRight">This enumeration lists flags for SWI.  <a href="a00993.html#ga8759b00e645502d0f1c3b7330e20e52b">More...</a><br /></td></tr>
<tr class="separator:ga8759b00e645502d0f1c3b7330e20e52b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gab77081d6d85ee3ab839a0882e80e9e87"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gab77081d6d85ee3ab839a0882e80e9e87">hal_iface_init</a> (<a class="el" href="a01013.html">ATCAIfaceCfg</a> *, <a class="el" href="a01109.html">ATCAHAL_t</a> *hal)</td></tr>
<tr class="memdesc:gab77081d6d85ee3ab839a0882e80e9e87"><td class="mdescLeft">&#160;</td><td class="mdescRight">Standard HAL API for ATCA to initialize a physical interface.  <a href="#gab77081d6d85ee3ab839a0882e80e9e87">More...</a><br /></td></tr>
<tr class="separator:gab77081d6d85ee3ab839a0882e80e9e87"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4be1afccb41f28f6ce620b1d5197befc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga4be1afccb41f28f6ce620b1d5197befc">hal_iface_release</a> (<a class="el" href="a00989.html#gac7f674d4a0afb12d2f3c9c5e98cb1089">ATCAIfaceType</a>, void *hal_data)</td></tr>
<tr class="memdesc:ga4be1afccb41f28f6ce620b1d5197befc"><td class="mdescLeft">&#160;</td><td class="mdescRight">releases a physical interface, HAL knows how to interpret hal_data  <a href="#ga4be1afccb41f28f6ce620b1d5197befc">More...</a><br /></td></tr>
<tr class="separator:ga4be1afccb41f28f6ce620b1d5197befc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6ce92f1d10000eb6618fc74c2ca92d76"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga6ce92f1d10000eb6618fc74c2ca92d76">hal_check_wake</a> (const uint8_t *response, int response_size)</td></tr>
<tr class="memdesc:ga6ce92f1d10000eb6618fc74c2ca92d76"><td class="mdescLeft">&#160;</td><td class="mdescRight">Utility function for hal_wake to check the reply.  <a href="#ga6ce92f1d10000eb6618fc74c2ca92d76">More...</a><br /></td></tr>
<tr class="separator:ga6ce92f1d10000eb6618fc74c2ca92d76"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7598dfcd6dcac882836544d48356d02f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga7598dfcd6dcac882836544d48356d02f">atca_delay_us</a> (uint32_t delay)</td></tr>
<tr class="memdesc:ga7598dfcd6dcac882836544d48356d02f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Timer API implemented at the HAL level.  <a href="#ga7598dfcd6dcac882836544d48356d02f">More...</a><br /></td></tr>
<tr class="separator:ga7598dfcd6dcac882836544d48356d02f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga19891182689551cc3a88603135959351"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga19891182689551cc3a88603135959351">atca_delay_10us</a> (uint32_t delay)</td></tr>
<tr class="memdesc:ga19891182689551cc3a88603135959351"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function delays for a number of tens of microseconds.  <a href="#ga19891182689551cc3a88603135959351">More...</a><br /></td></tr>
<tr class="separator:ga19891182689551cc3a88603135959351"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga80a853a202b089064bfc4b159c3418b4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga80a853a202b089064bfc4b159c3418b4">atca_delay_ms</a> (uint32_t delay)</td></tr>
<tr class="memdesc:ga80a853a202b089064bfc4b159c3418b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function delays for a number of milliseconds.  <a href="#ga80a853a202b089064bfc4b159c3418b4">More...</a><br /></td></tr>
<tr class="separator:ga80a853a202b089064bfc4b159c3418b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab289a3949663589ac6be71d72fb18278"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gab289a3949663589ac6be71d72fb18278">hal_create_mutex</a> (void **ppMutex, char *pName)</td></tr>
<tr class="memdesc:gab289a3949663589ac6be71d72fb18278"><td class="mdescLeft">&#160;</td><td class="mdescRight">Optional hal interfaces.  <a href="#gab289a3949663589ac6be71d72fb18278">More...</a><br /></td></tr>
<tr class="separator:gab289a3949663589ac6be71d72fb18278"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4589d7b3e951f40b7928f1cf31f7ddf3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga4589d7b3e951f40b7928f1cf31f7ddf3">hal_destroy_mutex</a> (void *pMutex)</td></tr>
<tr class="separator:ga4589d7b3e951f40b7928f1cf31f7ddf3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad4cd02ff7ae4e75844eab4e84eb61994"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gad4cd02ff7ae4e75844eab4e84eb61994">hal_lock_mutex</a> (void *pMutex)</td></tr>
<tr class="separator:gad4cd02ff7ae4e75844eab4e84eb61994"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga31fd8170a49623686543f6247b883bd1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga31fd8170a49623686543f6247b883bd1">hal_unlock_mutex</a> (void *pMutex)</td></tr>
<tr class="separator:ga31fd8170a49623686543f6247b883bd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga549d0b53127f1bb10e7f34453b8a2d3c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga549d0b53127f1bb10e7f34453b8a2d3c">hal_kit_hid_discover_buses</a> (int i2c_buses[], int max_buses)</td></tr>
<tr class="memdesc:ga549d0b53127f1bb10e7f34453b8a2d3c"><td class="mdescLeft">&#160;</td><td class="mdescRight">discover cdc buses available for this hardware this maintains a list of logical to physical bus mappings freeing the application of the a-priori knowledge  <a href="#ga549d0b53127f1bb10e7f34453b8a2d3c">More...</a><br /></td></tr>
<tr class="separator:ga549d0b53127f1bb10e7f34453b8a2d3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0121a73c96416c97ce07ed9077226588"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga0121a73c96416c97ce07ed9077226588">hal_kit_hid_discover_devices</a> (int bus_num, <a class="el" href="a01013.html">ATCAIfaceCfg</a> cfg[], int *found)</td></tr>
<tr class="memdesc:ga0121a73c96416c97ce07ed9077226588"><td class="mdescLeft">&#160;</td><td class="mdescRight">discover any CryptoAuth devices on a given logical bus number  <a href="#ga0121a73c96416c97ce07ed9077226588">More...</a><br /></td></tr>
<tr class="separator:ga0121a73c96416c97ce07ed9077226588"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga95b4e99655383680272a1d9354d42479"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga95b4e99655383680272a1d9354d42479">hal_kit_hid_init</a> (void *hal, <a class="el" href="a01013.html">ATCAIfaceCfg</a> *cfg)</td></tr>
<tr class="memdesc:ga95b4e99655383680272a1d9354d42479"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL implementation of Kit USB HID init.  <a href="#ga95b4e99655383680272a1d9354d42479">More...</a><br /></td></tr>
<tr class="separator:ga95b4e99655383680272a1d9354d42479"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6f06bc1662b3d0361f6a241e1b5612f2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga6f06bc1662b3d0361f6a241e1b5612f2">hal_kit_hid_post_init</a> (<a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a> iface)</td></tr>
<tr class="memdesc:ga6f06bc1662b3d0361f6a241e1b5612f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL implementation of Kit HID post init.  <a href="#ga6f06bc1662b3d0361f6a241e1b5612f2">More...</a><br /></td></tr>
<tr class="separator:ga6f06bc1662b3d0361f6a241e1b5612f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabd452e3edb32ea0d22653c182b4e1198"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gabd452e3edb32ea0d22653c182b4e1198">kit_phy_send</a> (<a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a> iface, uint8_t *txdata, int txlength)</td></tr>
<tr class="memdesc:gabd452e3edb32ea0d22653c182b4e1198"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL implementation of send over USB HID.  <a href="#gabd452e3edb32ea0d22653c182b4e1198">More...</a><br /></td></tr>
<tr class="separator:gabd452e3edb32ea0d22653c182b4e1198"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabb507252b1011037d6d2cce7d91b01d0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gabb507252b1011037d6d2cce7d91b01d0">kit_phy_receive</a> (<a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a> iface, uint8_t *rxdata, int *rxsize)</td></tr>
<tr class="memdesc:gabb507252b1011037d6d2cce7d91b01d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL implementation of kit protocol send over USB HID.  <a href="#gabb507252b1011037d6d2cce7d91b01d0">More...</a><br /></td></tr>
<tr class="separator:gabb507252b1011037d6d2cce7d91b01d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga11ee6ec0b2b7eb2ff2472f92208c3205"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga11ee6ec0b2b7eb2ff2472f92208c3205">kit_phy_num_found</a> (int8_t *num_found)</td></tr>
<tr class="memdesc:ga11ee6ec0b2b7eb2ff2472f92208c3205"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of USB HID devices found.  <a href="#ga11ee6ec0b2b7eb2ff2472f92208c3205">More...</a><br /></td></tr>
<tr class="separator:ga11ee6ec0b2b7eb2ff2472f92208c3205"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga47588dbefadcc1569513b053a156f3d6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga47588dbefadcc1569513b053a156f3d6">hal_kit_hid_send</a> (<a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a> iface, uint8_t *txdata, int txlength)</td></tr>
<tr class="memdesc:ga47588dbefadcc1569513b053a156f3d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL implementation of kit protocol send over USB HID.  <a href="#ga47588dbefadcc1569513b053a156f3d6">More...</a><br /></td></tr>
<tr class="separator:ga47588dbefadcc1569513b053a156f3d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa80dfd4a91f557329fa1daf16b0f05a8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gaa80dfd4a91f557329fa1daf16b0f05a8">hal_kit_hid_receive</a> (<a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a> iface, uint8_t *rxdata, uint16_t *rxsize)</td></tr>
<tr class="memdesc:gaa80dfd4a91f557329fa1daf16b0f05a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL implementation of send over USB HID.  <a href="#gaa80dfd4a91f557329fa1daf16b0f05a8">More...</a><br /></td></tr>
<tr class="separator:gaa80dfd4a91f557329fa1daf16b0f05a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga65289262310f2662b2c47450b93c9580"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga65289262310f2662b2c47450b93c9580">hal_kit_hid_wake</a> (<a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a> iface)</td></tr>
<tr class="memdesc:ga65289262310f2662b2c47450b93c9580"><td class="mdescLeft">&#160;</td><td class="mdescRight">Call the wake for kit protocol.  <a href="#ga65289262310f2662b2c47450b93c9580">More...</a><br /></td></tr>
<tr class="separator:ga65289262310f2662b2c47450b93c9580"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaacf6310945889a6119cab867a1ced5e2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gaacf6310945889a6119cab867a1ced5e2">hal_kit_hid_idle</a> (<a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a> iface)</td></tr>
<tr class="memdesc:gaacf6310945889a6119cab867a1ced5e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Call the idle for kit protocol.  <a href="#gaacf6310945889a6119cab867a1ced5e2">More...</a><br /></td></tr>
<tr class="separator:gaacf6310945889a6119cab867a1ced5e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1aa3345cb5d3e8fc29defe2758904fed"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga1aa3345cb5d3e8fc29defe2758904fed">hal_kit_hid_sleep</a> (<a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a> iface)</td></tr>
<tr class="memdesc:ga1aa3345cb5d3e8fc29defe2758904fed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Call the sleep for kit protocol.  <a href="#ga1aa3345cb5d3e8fc29defe2758904fed">More...</a><br /></td></tr>
<tr class="separator:ga1aa3345cb5d3e8fc29defe2758904fed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8c7b9adb28b4bbdee8d5cd78ab16255f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga8c7b9adb28b4bbdee8d5cd78ab16255f">hal_kit_hid_release</a> (void *hal_data)</td></tr>
<tr class="memdesc:ga8c7b9adb28b4bbdee8d5cd78ab16255f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Close the physical port for HID.  <a href="#ga8c7b9adb28b4bbdee8d5cd78ab16255f">More...</a><br /></td></tr>
<tr class="separator:ga8c7b9adb28b4bbdee8d5cd78ab16255f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga05700385437884cc7b28c38d33e84f8c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga05700385437884cc7b28c38d33e84f8c">hal_i2c_discover_buses</a> (int i2c_buses[], int max_buses)</td></tr>
<tr class="memdesc:ga05700385437884cc7b28c38d33e84f8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">discover i2c buses available for this hardware this maintains a list of logical to physical bus mappings freeing the application of the prior knowledge  <a href="#ga05700385437884cc7b28c38d33e84f8c">More...</a><br /></td></tr>
<tr class="separator:ga05700385437884cc7b28c38d33e84f8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac7644e62498a596c09952ee3b28017b9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gac7644e62498a596c09952ee3b28017b9">hal_i2c_discover_devices</a> (int bus_num, <a class="el" href="a01013.html">ATCAIfaceCfg</a> cfg[], int *found)</td></tr>
<tr class="memdesc:gac7644e62498a596c09952ee3b28017b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">discover any CryptoAuth devices on a given logical bus number  <a href="#gac7644e62498a596c09952ee3b28017b9">More...</a><br /></td></tr>
<tr class="separator:gac7644e62498a596c09952ee3b28017b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga09e7f465a040fbd19ea136269571de3c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga09e7f465a040fbd19ea136269571de3c">hal_i2c_init</a> (void *hal, <a class="el" href="a01013.html">ATCAIfaceCfg</a> *cfg)</td></tr>
<tr class="memdesc:ga09e7f465a040fbd19ea136269571de3c"><td class="mdescLeft">&#160;</td><td class="mdescRight">initialize an I2C interface using given config  <a href="#ga09e7f465a040fbd19ea136269571de3c">More...</a><br /></td></tr>
<tr class="separator:ga09e7f465a040fbd19ea136269571de3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafbe53519362f18c2688d10da6f7c618f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gafbe53519362f18c2688d10da6f7c618f">hal_i2c_post_init</a> (<a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a> iface)</td></tr>
<tr class="memdesc:gafbe53519362f18c2688d10da6f7c618f"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL implementation of I2C post init.  <a href="#gafbe53519362f18c2688d10da6f7c618f">More...</a><br /></td></tr>
<tr class="separator:gafbe53519362f18c2688d10da6f7c618f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacd0fb31f0f88ef3762665e26b5aa784b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gacd0fb31f0f88ef3762665e26b5aa784b">hal_i2c_send</a> (<a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a> iface, uint8_t *txdata, int txlength)</td></tr>
<tr class="memdesc:gacd0fb31f0f88ef3762665e26b5aa784b"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL implementation of I2C send over ASF.  <a href="#gacd0fb31f0f88ef3762665e26b5aa784b">More...</a><br /></td></tr>
<tr class="separator:gacd0fb31f0f88ef3762665e26b5aa784b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7785bcc305c14e2dc188bb1b9a77814a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga7785bcc305c14e2dc188bb1b9a77814a">hal_i2c_receive</a> (<a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a> iface, uint8_t *rxdata, uint16_t *rxlength)</td></tr>
<tr class="memdesc:ga7785bcc305c14e2dc188bb1b9a77814a"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL implementation of I2C receive function for ASF I2C.  <a href="#ga7785bcc305c14e2dc188bb1b9a77814a">More...</a><br /></td></tr>
<tr class="separator:ga7785bcc305c14e2dc188bb1b9a77814a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab7f613b378e0d01b80703df3ac662d6d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gab7f613b378e0d01b80703df3ac662d6d">change_i2c_speed</a> (<a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a> iface, uint32_t <a class="el" href="a00993.html#ga218b4f7c6cc2681a99c23a3b089d68b1">speed</a>)</td></tr>
<tr class="memdesc:gab7f613b378e0d01b80703df3ac662d6d"><td class="mdescLeft">&#160;</td><td class="mdescRight">method to change the bus speed of I2C  <a href="#gab7f613b378e0d01b80703df3ac662d6d">More...</a><br /></td></tr>
<tr class="separator:gab7f613b378e0d01b80703df3ac662d6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad4df1b6755e2d5b5d9e810371e45ca8c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gad4df1b6755e2d5b5d9e810371e45ca8c">hal_i2c_wake</a> (<a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a> iface)</td></tr>
<tr class="memdesc:gad4df1b6755e2d5b5d9e810371e45ca8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">wake up CryptoAuth device using I2C bus  <a href="#gad4df1b6755e2d5b5d9e810371e45ca8c">More...</a><br /></td></tr>
<tr class="separator:gad4df1b6755e2d5b5d9e810371e45ca8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9317303ada721ff3f97e7aad69437a30"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga9317303ada721ff3f97e7aad69437a30">hal_i2c_idle</a> (<a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a> iface)</td></tr>
<tr class="memdesc:ga9317303ada721ff3f97e7aad69437a30"><td class="mdescLeft">&#160;</td><td class="mdescRight">idle CryptoAuth device using I2C bus  <a href="#ga9317303ada721ff3f97e7aad69437a30">More...</a><br /></td></tr>
<tr class="separator:ga9317303ada721ff3f97e7aad69437a30"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3f89bae6a625d5f37abdcc99408def27"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga3f89bae6a625d5f37abdcc99408def27">hal_i2c_sleep</a> (<a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a> iface)</td></tr>
<tr class="memdesc:ga3f89bae6a625d5f37abdcc99408def27"><td class="mdescLeft">&#160;</td><td class="mdescRight">sleep CryptoAuth device using I2C bus  <a href="#ga3f89bae6a625d5f37abdcc99408def27">More...</a><br /></td></tr>
<tr class="separator:ga3f89bae6a625d5f37abdcc99408def27"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac382cc4431d2d1c721c21a453ba36c22"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gac382cc4431d2d1c721c21a453ba36c22">hal_i2c_release</a> (void *hal_data)</td></tr>
<tr class="memdesc:gac382cc4431d2d1c721c21a453ba36c22"><td class="mdescLeft">&#160;</td><td class="mdescRight">manages reference count on given bus and releases resource if no more refences exist  <a href="#gac382cc4431d2d1c721c21a453ba36c22">More...</a><br /></td></tr>
<tr class="separator:gac382cc4431d2d1c721c21a453ba36c22"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6ec842c5f4674de5da640541e616785a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga6ec842c5f4674de5da640541e616785a">hal_cdc_discover_buses</a> (int cdc_buses[], int max_buses)</td></tr>
<tr class="memdesc:ga6ec842c5f4674de5da640541e616785a"><td class="mdescLeft">&#160;</td><td class="mdescRight">discover cdc buses available for this hardware this maintains a list of logical to physical bus mappings freeing the application of the a-priori knowledge.This function is currently not implemented.  <a href="#ga6ec842c5f4674de5da640541e616785a">More...</a><br /></td></tr>
<tr class="separator:ga6ec842c5f4674de5da640541e616785a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5604d17ec61ab15961079beb8f3c8682"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga5604d17ec61ab15961079beb8f3c8682">hal_cdc_discover_devices</a> (int bus_num, <a class="el" href="a01013.html">ATCAIfaceCfg</a> cfg[], int *found)</td></tr>
<tr class="memdesc:ga5604d17ec61ab15961079beb8f3c8682"><td class="mdescLeft">&#160;</td><td class="mdescRight">discover any CryptoAuth devices on a given logical bus number  <a href="#ga5604d17ec61ab15961079beb8f3c8682">More...</a><br /></td></tr>
<tr class="separator:ga5604d17ec61ab15961079beb8f3c8682"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga313bdfc8337f930a7f9fc6ca4e7731d9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga313bdfc8337f930a7f9fc6ca4e7731d9">hal_kit_cdc_init</a> (void *hal, <a class="el" href="a01013.html">ATCAIfaceCfg</a> *cfg)</td></tr>
<tr class="memdesc:ga313bdfc8337f930a7f9fc6ca4e7731d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL implementation of Kit USB CDC init.  <a href="#ga313bdfc8337f930a7f9fc6ca4e7731d9">More...</a><br /></td></tr>
<tr class="separator:ga313bdfc8337f930a7f9fc6ca4e7731d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad11b8714818c2b05f70593c002fc5945"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gad11b8714818c2b05f70593c002fc5945">hal_kit_cdc_post_init</a> (<a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a> iface)</td></tr>
<tr class="memdesc:gad11b8714818c2b05f70593c002fc5945"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL implementation of Kit USB CDC post init.  <a href="#gad11b8714818c2b05f70593c002fc5945">More...</a><br /></td></tr>
<tr class="separator:gad11b8714818c2b05f70593c002fc5945"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga020fb0be6c73515122cf4b9f749fd97d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga020fb0be6c73515122cf4b9f749fd97d">kit_phy_send</a> (<a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a> iface, const char *txdata, int txlength)</td></tr>
<tr class="memdesc:ga020fb0be6c73515122cf4b9f749fd97d"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL implementation of kit protocol send .It is called by the top layer.  <a href="#ga020fb0be6c73515122cf4b9f749fd97d">More...</a><br /></td></tr>
<tr class="separator:ga020fb0be6c73515122cf4b9f749fd97d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaae5e94b6080d4279474eb3e98bc58901"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gaae5e94b6080d4279474eb3e98bc58901">kit_phy_receive</a> (<a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a> iface, char *rxdata, int *rxsize)</td></tr>
<tr class="memdesc:gaae5e94b6080d4279474eb3e98bc58901"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL implementation of kit protocol receive data.It is called by the top layer.  <a href="#gaae5e94b6080d4279474eb3e98bc58901">More...</a><br /></td></tr>
<tr class="separator:gaae5e94b6080d4279474eb3e98bc58901"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5fac3cf3552eee701aec448c1392edd8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga5fac3cf3552eee701aec448c1392edd8">hal_kit_phy_num_found</a> (int8_t *num_found)</td></tr>
<tr class="memdesc:ga5fac3cf3552eee701aec448c1392edd8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of USB CDC devices found.  <a href="#ga5fac3cf3552eee701aec448c1392edd8">More...</a><br /></td></tr>
<tr class="separator:ga5fac3cf3552eee701aec448c1392edd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7732806c89cd206a96b7fabbaf6770d5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga7732806c89cd206a96b7fabbaf6770d5">hal_kit_cdc_send</a> (<a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a> iface, uint8_t *txdata, int txlength)</td></tr>
<tr class="memdesc:ga7732806c89cd206a96b7fabbaf6770d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL implementation of kit protocol send over USB CDC.  <a href="#ga7732806c89cd206a96b7fabbaf6770d5">More...</a><br /></td></tr>
<tr class="separator:ga7732806c89cd206a96b7fabbaf6770d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3f3972f81de141ff0816b605054d775a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga3f3972f81de141ff0816b605054d775a">hal_kit_cdc_receive</a> (<a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a> iface, uint8_t *rxdata, uint16_t *rxsize)</td></tr>
<tr class="memdesc:ga3f3972f81de141ff0816b605054d775a"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL implementation of kit protocol receive over USB CDC.  <a href="#ga3f3972f81de141ff0816b605054d775a">More...</a><br /></td></tr>
<tr class="separator:ga3f3972f81de141ff0816b605054d775a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabced238b72e636a557d00355a2e44ac9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gabced238b72e636a557d00355a2e44ac9">hal_kit_cdc_wake</a> (<a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a> iface)</td></tr>
<tr class="memdesc:gabced238b72e636a557d00355a2e44ac9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Call the wake for kit protocol over USB CDC.  <a href="#gabced238b72e636a557d00355a2e44ac9">More...</a><br /></td></tr>
<tr class="separator:gabced238b72e636a557d00355a2e44ac9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga92055a86e32f3dfc9eef064d48aa0870"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga92055a86e32f3dfc9eef064d48aa0870">hal_kit_cdc_idle</a> (<a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a> iface)</td></tr>
<tr class="memdesc:ga92055a86e32f3dfc9eef064d48aa0870"><td class="mdescLeft">&#160;</td><td class="mdescRight">Call the idle for kit protocol over USB CDC.  <a href="#ga92055a86e32f3dfc9eef064d48aa0870">More...</a><br /></td></tr>
<tr class="separator:ga92055a86e32f3dfc9eef064d48aa0870"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1299c47e6d73d987bc04b16f25637bf6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga1299c47e6d73d987bc04b16f25637bf6">hal_kit_cdc_sleep</a> (<a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a> iface)</td></tr>
<tr class="memdesc:ga1299c47e6d73d987bc04b16f25637bf6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Call the sleep for kit protocol over USB CDC.  <a href="#ga1299c47e6d73d987bc04b16f25637bf6">More...</a><br /></td></tr>
<tr class="separator:ga1299c47e6d73d987bc04b16f25637bf6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga21a939cc86a0602cb2ba3be3eec26e6e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga21a939cc86a0602cb2ba3be3eec26e6e">hal_kit_cdc_release</a> (void *hal_data)</td></tr>
<tr class="memdesc:ga21a939cc86a0602cb2ba3be3eec26e6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Close the physical port for CDC over USB CDC.  <a href="#ga21a939cc86a0602cb2ba3be3eec26e6e">More...</a><br /></td></tr>
<tr class="separator:ga21a939cc86a0602cb2ba3be3eec26e6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga56255b770aa5e34b3e69898eaeda93e9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga56255b770aa5e34b3e69898eaeda93e9">hal_kit_cdc_discover_buses</a> (int cdc_buses[], int max_buses)</td></tr>
<tr class="memdesc:ga56255b770aa5e34b3e69898eaeda93e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">discover cdc buses available for this hardware this maintains a list of logical to physical bus mappings freeing the application of the a-priori knowledge.This function is currently not implemented.  <a href="#ga56255b770aa5e34b3e69898eaeda93e9">More...</a><br /></td></tr>
<tr class="separator:ga56255b770aa5e34b3e69898eaeda93e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0a042c3f441fa78c4f05a18bfbeb5f2d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga0a042c3f441fa78c4f05a18bfbeb5f2d">hal_kit_cdc_discover_devices</a> (int bus_num, <a class="el" href="a01013.html">ATCAIfaceCfg</a> *cfg, int *found)</td></tr>
<tr class="memdesc:ga0a042c3f441fa78c4f05a18bfbeb5f2d"><td class="mdescLeft">&#160;</td><td class="mdescRight">discover any CryptoAuth devices on a given logical bus number  <a href="#ga0a042c3f441fa78c4f05a18bfbeb5f2d">More...</a><br /></td></tr>
<tr class="separator:ga0a042c3f441fa78c4f05a18bfbeb5f2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8fc6a91c0d59cdf46f1bdf33ca8ab048"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga8fc6a91c0d59cdf46f1bdf33ca8ab048">i2c_write</a> (I2C_MODULE i2c_id, uint8_t address, uint8_t *data, int len)</td></tr>
<tr class="separator:ga8fc6a91c0d59cdf46f1bdf33ca8ab048"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf31b095e9faac0c43ba3f0403bc52cf4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gaf31b095e9faac0c43ba3f0403bc52cf4">i2c_read</a> (I2C_MODULE i2c_id, uint8_t address, uint8_t *data, uint16_t len)</td></tr>
<tr class="separator:gaf31b095e9faac0c43ba3f0403bc52cf4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga31c35882825888bc79e420905830f25d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga31c35882825888bc79e420905830f25d">delay_us</a> (UINT32 delay)</td></tr>
<tr class="separator:ga31c35882825888bc79e420905830f25d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafd0e52ccc611a61fcd1b0b6cd1a19efd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gafd0e52ccc611a61fcd1b0b6cd1a19efd">delay_us</a> (uint32_t delay)</td></tr>
<tr class="separator:gafd0e52ccc611a61fcd1b0b6cd1a19efd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga53864a301dac6efbdbdc3931aa79e23e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga53864a301dac6efbdbdc3931aa79e23e">hal_swi_discover_buses</a> (int swi_buses[], int max_buses)</td></tr>
<tr class="memdesc:ga53864a301dac6efbdbdc3931aa79e23e"><td class="mdescLeft">&#160;</td><td class="mdescRight">discover swi buses available for this hardware this maintains a list of logical to physical bus mappings freeing the application.This function is currently not supported. of the a-priori knowledge  <a href="#ga53864a301dac6efbdbdc3931aa79e23e">More...</a><br /></td></tr>
<tr class="separator:ga53864a301dac6efbdbdc3931aa79e23e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga354e6fa757688b73e6fb5293bb835def"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga354e6fa757688b73e6fb5293bb835def">hal_swi_discover_devices</a> (int bus_num, <a class="el" href="a01013.html">ATCAIfaceCfg</a> cfg[], int *found)</td></tr>
<tr class="memdesc:ga354e6fa757688b73e6fb5293bb835def"><td class="mdescLeft">&#160;</td><td class="mdescRight">discover any CryptoAuth devices on a given logical bus number.This function is curently not supported.  <a href="#ga354e6fa757688b73e6fb5293bb835def">More...</a><br /></td></tr>
<tr class="separator:ga354e6fa757688b73e6fb5293bb835def"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf406053c1a3f2a86bdc887f2ff4b663d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gaf406053c1a3f2a86bdc887f2ff4b663d">hal_swi_init</a> (void *hal, <a class="el" href="a01013.html">ATCAIfaceCfg</a> *cfg)</td></tr>
<tr class="memdesc:gaf406053c1a3f2a86bdc887f2ff4b663d"><td class="mdescLeft">&#160;</td><td class="mdescRight">hal_swi_init manages requests to initialize a physical interface. It manages use counts so when an interface has released the physical layer, it will disable the interface for some other use. You can have multiple ATCAIFace instances using the same bus, and you can have multiple ATCAIFace instances on multiple swi buses, so hal_swi_init manages these things and ATCAIFace is abstracted from the physical details.  <a href="#gaf406053c1a3f2a86bdc887f2ff4b663d">More...</a><br /></td></tr>
<tr class="separator:gaf406053c1a3f2a86bdc887f2ff4b663d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9186e5235979216330ae580290872c77"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga9186e5235979216330ae580290872c77">hal_swi_post_init</a> (<a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a> iface)</td></tr>
<tr class="memdesc:ga9186e5235979216330ae580290872c77"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL implementation of SWI post init.  <a href="#ga9186e5235979216330ae580290872c77">More...</a><br /></td></tr>
<tr class="separator:ga9186e5235979216330ae580290872c77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaeb8b8857192a7710785acce0110e8016"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gaeb8b8857192a7710785acce0110e8016">hal_swi_send</a> (<a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a> iface, uint8_t *txdata, int txlength)</td></tr>
<tr class="memdesc:gaeb8b8857192a7710785acce0110e8016"><td class="mdescLeft">&#160;</td><td class="mdescRight">Send byte(s) via SWI.  <a href="#gaeb8b8857192a7710785acce0110e8016">More...</a><br /></td></tr>
<tr class="separator:gaeb8b8857192a7710785acce0110e8016"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga02e9f36723f0feb21d373898728de04b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga02e9f36723f0feb21d373898728de04b">hal_swi_receive</a> (<a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a> iface, uint8_t *rxdata, uint16_t *rxlength)</td></tr>
<tr class="memdesc:ga02e9f36723f0feb21d373898728de04b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Receive byte(s) via SWI.  <a href="#ga02e9f36723f0feb21d373898728de04b">More...</a><br /></td></tr>
<tr class="separator:ga02e9f36723f0feb21d373898728de04b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafc428980ec95e37eee94813db229fe70"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gafc428980ec95e37eee94813db229fe70">hal_swi_wake</a> (<a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a> iface)</td></tr>
<tr class="memdesc:gafc428980ec95e37eee94813db229fe70"><td class="mdescLeft">&#160;</td><td class="mdescRight">Send Wake flag via SWI.  <a href="#gafc428980ec95e37eee94813db229fe70">More...</a><br /></td></tr>
<tr class="separator:gafc428980ec95e37eee94813db229fe70"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga618291172976da96c4f02dc9200c845c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga618291172976da96c4f02dc9200c845c">hal_swi_idle</a> (<a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a> iface)</td></tr>
<tr class="memdesc:ga618291172976da96c4f02dc9200c845c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Send Idle flag via SWI.  <a href="#ga618291172976da96c4f02dc9200c845c">More...</a><br /></td></tr>
<tr class="separator:ga618291172976da96c4f02dc9200c845c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga252e365a30f2583dae8a8eac073a9f53"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga252e365a30f2583dae8a8eac073a9f53">hal_swi_sleep</a> (<a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a> iface)</td></tr>
<tr class="memdesc:ga252e365a30f2583dae8a8eac073a9f53"><td class="mdescLeft">&#160;</td><td class="mdescRight">Send Sleep flag via SWI.  <a href="#ga252e365a30f2583dae8a8eac073a9f53">More...</a><br /></td></tr>
<tr class="separator:ga252e365a30f2583dae8a8eac073a9f53"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga196dbc62546b39ac3e556a0f7f6b7132"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga196dbc62546b39ac3e556a0f7f6b7132">hal_swi_release</a> (void *hal_data)</td></tr>
<tr class="memdesc:ga196dbc62546b39ac3e556a0f7f6b7132"><td class="mdescLeft">&#160;</td><td class="mdescRight">Manages reference count on given bus and releases resource if no more reference(s) exist.  <a href="#ga196dbc62546b39ac3e556a0f7f6b7132">More...</a><br /></td></tr>
<tr class="separator:ga196dbc62546b39ac3e556a0f7f6b7132"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaae96ea936a2e85d0bcb81b7868ee007d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gaae96ea936a2e85d0bcb81b7868ee007d">hal_swi_send_flag</a> (<a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a> iface, uint8_t data)</td></tr>
<tr class="memdesc:gaae96ea936a2e85d0bcb81b7868ee007d"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL implementation of SWI send one byte over UART.  <a href="#gaae96ea936a2e85d0bcb81b7868ee007d">More...</a><br /></td></tr>
<tr class="separator:gaae96ea936a2e85d0bcb81b7868ee007d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1473b18d902ce22c6b22d04ff5a7ef02"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga1473b18d902ce22c6b22d04ff5a7ef02">strnchr</a> (const char *s, size_t count, int c)</td></tr>
<tr class="separator:ga1473b18d902ce22c6b22d04ff5a7ef02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae9acffb3ff9a025924457fce5c24a709"><td class="memItemLeft" align="right" valign="top">char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gae9acffb3ff9a025924457fce5c24a709">kit_id_from_devtype</a> (<a class="el" href="a00988.html#gafb234ccd6a80d09c0efbe336c2354267">ATCADeviceType</a> devtype)</td></tr>
<tr class="separator:gae9acffb3ff9a025924457fce5c24a709"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8fb98d1c372e7e75f99a2f7d1182b877"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga8fb98d1c372e7e75f99a2f7d1182b877">kit_init</a> (<a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a> iface)</td></tr>
<tr class="memdesc:ga8fb98d1c372e7e75f99a2f7d1182b877"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL implementation of kit protocol init. This function calls back to the physical protocol to send the bytes.  <a href="#ga8fb98d1c372e7e75f99a2f7d1182b877">More...</a><br /></td></tr>
<tr class="separator:ga8fb98d1c372e7e75f99a2f7d1182b877"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac9dc79f9b5281fbe82c20b6af9de76b7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gac9dc79f9b5281fbe82c20b6af9de76b7">kit_send</a> (<a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a> iface, const uint8_t *txdata, int txlength)</td></tr>
<tr class="memdesc:gac9dc79f9b5281fbe82c20b6af9de76b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL implementation of kit protocol send. This function calls back to the physical protocol to send the bytes.  <a href="#gac9dc79f9b5281fbe82c20b6af9de76b7">More...</a><br /></td></tr>
<tr class="separator:gac9dc79f9b5281fbe82c20b6af9de76b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga09a86ccc517208f9c9a057ea569e2a18"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga09a86ccc517208f9c9a057ea569e2a18">kit_receive</a> (<a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a> iface, uint8_t *rxdata, uint16_t *rxsize)</td></tr>
<tr class="memdesc:ga09a86ccc517208f9c9a057ea569e2a18"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL implementation to receive bytes and unwrap from kit protocol. This function calls back to the physical protocol to receive the bytes.  <a href="#ga09a86ccc517208f9c9a057ea569e2a18">More...</a><br /></td></tr>
<tr class="separator:ga09a86ccc517208f9c9a057ea569e2a18"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf7ce58d02b067b956abd32127f5519e9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gaf7ce58d02b067b956abd32127f5519e9">kit_wake</a> (<a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a> iface)</td></tr>
<tr class="memdesc:gaf7ce58d02b067b956abd32127f5519e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Call the wake for kit protocol.  <a href="#gaf7ce58d02b067b956abd32127f5519e9">More...</a><br /></td></tr>
<tr class="separator:gaf7ce58d02b067b956abd32127f5519e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaeaee19ff7623f0eab9839e68dae583af"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gaeaee19ff7623f0eab9839e68dae583af">kit_idle</a> (<a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a> iface)</td></tr>
<tr class="memdesc:gaeaee19ff7623f0eab9839e68dae583af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Call the idle for kit protocol.  <a href="#gaeaee19ff7623f0eab9839e68dae583af">More...</a><br /></td></tr>
<tr class="separator:gaeaee19ff7623f0eab9839e68dae583af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf6054a0c971830411d5008b94923bdd8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gaf6054a0c971830411d5008b94923bdd8">kit_sleep</a> (<a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a> iface)</td></tr>
<tr class="memdesc:gaf6054a0c971830411d5008b94923bdd8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Call the sleep for kit protocol.  <a href="#gaf6054a0c971830411d5008b94923bdd8">More...</a><br /></td></tr>
<tr class="separator:gaf6054a0c971830411d5008b94923bdd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0f09f4b79c681f54b88a8f71bca0d4c4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga0f09f4b79c681f54b88a8f71bca0d4c4">kit_wrap_cmd</a> (const uint8_t *txdata, int txlen, char *pkitcmd, int *nkitcmd, char target)</td></tr>
<tr class="memdesc:ga0f09f4b79c681f54b88a8f71bca0d4c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wrap binary bytes in ascii kit protocol.  <a href="#ga0f09f4b79c681f54b88a8f71bca0d4c4">More...</a><br /></td></tr>
<tr class="separator:ga0f09f4b79c681f54b88a8f71bca0d4c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8bf59f4218d312568b769b8b8e5c563e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga8bf59f4218d312568b769b8b8e5c563e">kit_parse_rsp</a> (const char *pkitbuf, int nkitbuf, uint8_t *kitstatus, uint8_t *rxdata, int *datasize)</td></tr>
<tr class="memdesc:ga8bf59f4218d312568b769b8b8e5c563e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse the response ascii from the kit.  <a href="#ga8bf59f4218d312568b769b8b8e5c563e">More...</a><br /></td></tr>
<tr class="separator:ga8bf59f4218d312568b769b8b8e5c563e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga003b63648f1a5f9eba274760559688f2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga003b63648f1a5f9eba274760559688f2">swi_uart_init</a> (<a class="el" href="a00993.html#ga257ed552f7d68eb1e5d3ca7baa01559a">ATCASWIMaster_t</a> *instance)</td></tr>
<tr class="memdesc:ga003b63648f1a5f9eba274760559688f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of SWI UART init.  <a href="#ga003b63648f1a5f9eba274760559688f2">More...</a><br /></td></tr>
<tr class="separator:ga003b63648f1a5f9eba274760559688f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0b1aad3936bf003686d8db7fa2be5132"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga0b1aad3936bf003686d8db7fa2be5132">swi_uart_deinit</a> (<a class="el" href="a00993.html#ga257ed552f7d68eb1e5d3ca7baa01559a">ATCASWIMaster_t</a> *instance)</td></tr>
<tr class="memdesc:ga0b1aad3936bf003686d8db7fa2be5132"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of SWI UART deinit.  <a href="#ga0b1aad3936bf003686d8db7fa2be5132">More...</a><br /></td></tr>
<tr class="separator:ga0b1aad3936bf003686d8db7fa2be5132"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaba296f70baf68b768d6c4bb9cf7ba67d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gaba296f70baf68b768d6c4bb9cf7ba67d">swi_uart_setbaud</a> (<a class="el" href="a00993.html#ga257ed552f7d68eb1e5d3ca7baa01559a">ATCASWIMaster_t</a> *instance, uint32_t baudrate)</td></tr>
<tr class="memdesc:gaba296f70baf68b768d6c4bb9cf7ba67d"><td class="mdescLeft">&#160;</td><td class="mdescRight">implementation of SWI UART change baudrate.  <a href="#gaba296f70baf68b768d6c4bb9cf7ba67d">More...</a><br /></td></tr>
<tr class="separator:gaba296f70baf68b768d6c4bb9cf7ba67d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacc2a96c86ce4c07249b81bc6a7eb2e41"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gacc2a96c86ce4c07249b81bc6a7eb2e41">swi_uart_mode</a> (<a class="el" href="a00993.html#ga257ed552f7d68eb1e5d3ca7baa01559a">ATCASWIMaster_t</a> *instance, uint8_t mode)</td></tr>
<tr class="memdesc:gacc2a96c86ce4c07249b81bc6a7eb2e41"><td class="mdescLeft">&#160;</td><td class="mdescRight">implementation of SWI UART change mode.  <a href="#gacc2a96c86ce4c07249b81bc6a7eb2e41">More...</a><br /></td></tr>
<tr class="separator:gacc2a96c86ce4c07249b81bc6a7eb2e41"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad640b598d581ee7c8a4c804bee602906"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gad640b598d581ee7c8a4c804bee602906">swi_uart_discover_buses</a> (int swi_uart_buses[], int max_buses)</td></tr>
<tr class="memdesc:gad640b598d581ee7c8a4c804bee602906"><td class="mdescLeft">&#160;</td><td class="mdescRight">discover UART buses available for this hardware this maintains a list of logical to physical bus mappings freeing the application of the a-priori knowledge  <a href="#gad640b598d581ee7c8a4c804bee602906">More...</a><br /></td></tr>
<tr class="separator:gad640b598d581ee7c8a4c804bee602906"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4a4d491006d9683d67838963706ac9c1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga4a4d491006d9683d67838963706ac9c1">swi_uart_send_byte</a> (<a class="el" href="a00993.html#ga257ed552f7d68eb1e5d3ca7baa01559a">ATCASWIMaster_t</a> *instance, uint8_t data)</td></tr>
<tr class="memdesc:ga4a4d491006d9683d67838963706ac9c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL implementation of SWI UART send byte over ASF. This function send one byte over UART.  <a href="#ga4a4d491006d9683d67838963706ac9c1">More...</a><br /></td></tr>
<tr class="separator:ga4a4d491006d9683d67838963706ac9c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga93f3dab17c14f71641ca970998ede823"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga93f3dab17c14f71641ca970998ede823">swi_uart_receive_byte</a> (<a class="el" href="a00993.html#ga257ed552f7d68eb1e5d3ca7baa01559a">ATCASWIMaster_t</a> *instance, uint8_t *data)</td></tr>
<tr class="memdesc:ga93f3dab17c14f71641ca970998ede823"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL implementation of SWI UART receive bytes over ASF. This function receive one byte over UART.  <a href="#ga93f3dab17c14f71641ca970998ede823">More...</a><br /></td></tr>
<tr class="separator:ga93f3dab17c14f71641ca970998ede823"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:gab97bfae6ae6051d081edf51bb45eea05"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00993.html#ga2416cca7ee952e679d466e3349d65035">atcahid_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gab97bfae6ae6051d081edf51bb45eea05">_gHid</a></td></tr>
<tr class="separator:gab97bfae6ae6051d081edf51bb45eea05"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga95dac4460cd54b4b073285ebc79d215b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00993.html#gae8f36006f14bf6a9f4914bac69ed9f98">ATCAI2CMaster_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga95dac4460cd54b4b073285ebc79d215b">i2c_hal_data</a> [<a class="el" href="a00539.html#af89a7a4080a47aa10a5504291db285bf">MAX_I2C_BUSES</a>]</td></tr>
<tr class="separator:ga95dac4460cd54b4b073285ebc79d215b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa7deec7f5d89dfb4f9746d050b0926f9"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gaa7deec7f5d89dfb4f9746d050b0926f9">i2c_bus_ref_ct</a> = 0</td></tr>
<tr class="separator:gaa7deec7f5d89dfb4f9746d050b0926f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabc65c7c6bd64530b95fa72082f1e0390"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00993.html#ga2df85bfd309840b4c9a5087e053d4811">atcacdc_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gabc65c7c6bd64530b95fa72082f1e0390">_gCdc</a></td></tr>
<tr class="separator:gabc65c7c6bd64530b95fa72082f1e0390"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabe78755474c1323a5ac7b3dd6d03dedf"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gabe78755474c1323a5ac7b3dd6d03dedf">dev</a> = &quot;/dev/ttyACM0&quot;</td></tr>
<tr class="separator:gabe78755474c1323a5ac7b3dd6d03dedf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga218b4f7c6cc2681a99c23a3b089d68b1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#ga218b4f7c6cc2681a99c23a3b089d68b1">speed</a> = B115200</td></tr>
<tr class="separator:ga218b4f7c6cc2681a99c23a3b089d68b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab97bfae6ae6051d081edf51bb45eea05"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00993.html#ga2416cca7ee952e679d466e3349d65035">atcahid_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gab97bfae6ae6051d081edf51bb45eea05">_gHid</a></td></tr>
<tr class="separator:gab97bfae6ae6051d081edf51bb45eea05"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab97bfae6ae6051d081edf51bb45eea05"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00993.html#ga2416cca7ee952e679d466e3349d65035">atcahid_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gab97bfae6ae6051d081edf51bb45eea05">_gHid</a></td></tr>
<tr class="separator:gab97bfae6ae6051d081edf51bb45eea05"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaab85cb460831e8b7e4d3a5315b31c596"><td class="memItemLeft" align="right" valign="top">struct port_config&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00993.html#gaab85cb460831e8b7e4d3a5315b31c596">pin_conf</a></td></tr>
<tr class="separator:gaab85cb460831e8b7e4d3a5315b31c596"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>These methods define the hardware abstraction layer for communicating with a CryptoAuth device. </p>
<p>These methods define the hardware abstraction layer for communicating with a CryptoAuth device using SWI interface.</p>
<p>These methods define the hardware abstraction layer for communicating with a CryptoAuth device using SWI Interface.</p>
<p>These methods define the hardware abstraction layer for communicating with a CryptoAuth device using SWI bit banging.</p>
<p>&lt; Uncomment when debugging</p>
<p>These methods define the hardware abstraction layer for communicating with a CryptoAuth device using I2C driver of Harmony.</p>
<p>These methods define the hardware abstraction layer for communicating with a CryptoAuth device using I2C bit banging.</p>
<p>These methods define the hardware abstraction layer for communicating with a CryptoAuth device using I2C driver of ASF.</p>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="ga5ac8c9377f90d6ce3044f81f900a54fe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5ac8c9377f90d6ce3044f81f900a54fe">&#9670;&nbsp;</a></span>CDC_BUFFER_MAX</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CDC_BUFFER_MAX&#160;&#160;&#160;1024</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga08b6c05184266dc4d5c8727bb9c1c754"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga08b6c05184266dc4d5c8727bb9c1c754">&#9670;&nbsp;</a></span>CDC_DEVICES_MAX</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CDC_DEVICES_MAX&#160;&#160;&#160;10</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga512016e5f1966a8fd45b3f1a81ba5b8f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga512016e5f1966a8fd45b3f1a81ba5b8f">&#9670;&nbsp;</a></span>CPU_CLOCK</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CPU_CLOCK&#160;&#160;&#160;(80000000UL)</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="gab12a92582aefe426bb194e0c298e8f98"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab12a92582aefe426bb194e0c298e8f98">&#9670;&nbsp;</a></span>DEBUG_PIN_1</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEBUG_PIN_1&#160;&#160;&#160;EXT2_PIN_5</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga6a2579114d13238c7ba20d147a74090a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6a2579114d13238c7ba20d147a74090a">&#9670;&nbsp;</a></span>DEBUG_PIN_2</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEBUG_PIN_2&#160;&#160;&#160;EXT2_PIN_6</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga450d95819e5184befaec71050a61dce9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga450d95819e5184befaec71050a61dce9">&#9670;&nbsp;</a></span>GetInstructionClock</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define GetInstructionClock</td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td>&#160;&#160;&#160;(<a class="el" href="a00993.html#ga2f50cb3bdd9fd741e11f2389ea1bff4a">GetSystemClock</a>())</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga1b199a0aedb00251513eb57552f738b4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1b199a0aedb00251513eb57552f738b4">&#9670;&nbsp;</a></span>GetPeripheralClock</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define GetPeripheralClock</td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td>&#160;&#160;&#160;(<a class="el" href="a00993.html#ga2f50cb3bdd9fd741e11f2389ea1bff4a">GetSystemClock</a>() / (1 &lt;&lt; OSCCONbits.PBDIV))</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga2f50cb3bdd9fd741e11f2389ea1bff4a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2f50cb3bdd9fd741e11f2389ea1bff4a">&#9670;&nbsp;</a></span>GetSystemClock <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define GetSystemClock</td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td>&#160;&#160;&#160;(80000000ul)</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga2f50cb3bdd9fd741e11f2389ea1bff4a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2f50cb3bdd9fd741e11f2389ea1bff4a">&#9670;&nbsp;</a></span>GetSystemClock <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define GetSystemClock</td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td>&#160;&#160;&#160;(200000000UL)/* Fcy = 200MHz */</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga779f5e5d060c6d43dd09752eeb2a2bb3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga779f5e5d060c6d43dd09752eeb2a2bb3">&#9670;&nbsp;</a></span>HARMONY_I2C_DRIVER</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HARMONY_I2C_DRIVER&#160;&#160;&#160;1</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga49053c3cd6d48fe5f468ce010ac0a9ef"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga49053c3cd6d48fe5f468ce010ac0a9ef">&#9670;&nbsp;</a></span>HID_DEVICES_MAX <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HID_DEVICES_MAX&#160;&#160;&#160;10</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga49053c3cd6d48fe5f468ce010ac0a9ef"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga49053c3cd6d48fe5f468ce010ac0a9ef">&#9670;&nbsp;</a></span>HID_DEVICES_MAX <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HID_DEVICES_MAX&#160;&#160;&#160;10</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga49053c3cd6d48fe5f468ce010ac0a9ef"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga49053c3cd6d48fe5f468ce010ac0a9ef">&#9670;&nbsp;</a></span>HID_DEVICES_MAX <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HID_DEVICES_MAX&#160;&#160;&#160;10</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="gafa87510c678a9963da73988da4dd44f7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafa87510c678a9963da73988da4dd44f7">&#9670;&nbsp;</a></span>HID_GUID</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HID_GUID&#160;&#160;&#160;{ 0x4d1e55b2, 0xf16f, 0x11cf, 0x88, 0xcb, 0x00, 0x11, 0x11, 0x00, 0x00, 0x30 }</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga6cdff3589b286ebcdd7771bb425fbf73"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6cdff3589b286ebcdd7771bb425fbf73">&#9670;&nbsp;</a></span>HID_PACKET_MAX <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HID_PACKET_MAX&#160;&#160;&#160;512</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga6cdff3589b286ebcdd7771bb425fbf73"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6cdff3589b286ebcdd7771bb425fbf73">&#9670;&nbsp;</a></span>HID_PACKET_MAX <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HID_PACKET_MAX&#160;&#160;&#160;512</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga6cdff3589b286ebcdd7771bb425fbf73"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6cdff3589b286ebcdd7771bb425fbf73">&#9670;&nbsp;</a></span>HID_PACKET_MAX <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HID_PACKET_MAX&#160;&#160;&#160;512</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga5fdc7facea201bfce4ad308105f88d0c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5fdc7facea201bfce4ad308105f88d0c">&#9670;&nbsp;</a></span>INVALID_HANDLE_VALUE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define INVALID_HANDLE_VALUE&#160;&#160;&#160;((int)(-1))</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga8d90399e7f84850d1e8d4cd5e9f67fa8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8d90399e7f84850d1e8d4cd5e9f67fa8">&#9670;&nbsp;</a></span>KIT_MAX_SCAN_COUNT</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define KIT_MAX_SCAN_COUNT&#160;&#160;&#160;4</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="gadc1b033607e06cff7464dc0a49df2744"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gadc1b033607e06cff7464dc0a49df2744">&#9670;&nbsp;</a></span>KIT_MAX_TX_BUF</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define KIT_MAX_TX_BUF&#160;&#160;&#160;32</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga0810d89c328e48fd91eb604323cca4e9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0810d89c328e48fd91eb604323cca4e9">&#9670;&nbsp;</a></span>KIT_MSG_SIZE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define KIT_MSG_SIZE&#160;&#160;&#160;(32)</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga59e33124fc2fa800cc9c90a6ee3ff543"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga59e33124fc2fa800cc9c90a6ee3ff543">&#9670;&nbsp;</a></span>KIT_RX_WRAP_SIZE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define KIT_RX_WRAP_SIZE&#160;&#160;&#160;(<a class="el" href="a00993.html#ga0810d89c328e48fd91eb604323cca4e9">KIT_MSG_SIZE</a> + 6)</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga8a649555029d4f23edfc15a8c01b2d3d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8a649555029d4f23edfc15a8c01b2d3d">&#9670;&nbsp;</a></span>KIT_TX_WRAP_SIZE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define KIT_TX_WRAP_SIZE&#160;&#160;&#160;(7)</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="gaffe776513b24d84b39af8ab0930fef7f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaffe776513b24d84b39af8ab0930fef7f">&#9670;&nbsp;</a></span>max</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define max</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">a, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">b&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;(((a) &gt; (b)) ? (a) : (b))</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="gaf89a7a4080a47aa10a5504291db285bf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf89a7a4080a47aa10a5504291db285bf">&#9670;&nbsp;</a></span>MAX_I2C_BUSES <span class="overload">[1/11]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MAX_I2C_BUSES&#160;&#160;&#160;2</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="gaf89a7a4080a47aa10a5504291db285bf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf89a7a4080a47aa10a5504291db285bf">&#9670;&nbsp;</a></span>MAX_I2C_BUSES <span class="overload">[2/11]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MAX_I2C_BUSES&#160;&#160;&#160;2</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="gaf89a7a4080a47aa10a5504291db285bf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf89a7a4080a47aa10a5504291db285bf">&#9670;&nbsp;</a></span>MAX_I2C_BUSES <span class="overload">[3/11]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MAX_I2C_BUSES&#160;&#160;&#160;6</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="gaf89a7a4080a47aa10a5504291db285bf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf89a7a4080a47aa10a5504291db285bf">&#9670;&nbsp;</a></span>MAX_I2C_BUSES <span class="overload">[4/11]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MAX_I2C_BUSES&#160;&#160;&#160;6</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="gaf89a7a4080a47aa10a5504291db285bf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf89a7a4080a47aa10a5504291db285bf">&#9670;&nbsp;</a></span>MAX_I2C_BUSES <span class="overload">[5/11]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MAX_I2C_BUSES&#160;&#160;&#160;3</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="gaf89a7a4080a47aa10a5504291db285bf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf89a7a4080a47aa10a5504291db285bf">&#9670;&nbsp;</a></span>MAX_I2C_BUSES <span class="overload">[6/11]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MAX_I2C_BUSES&#160;&#160;&#160;4</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="gaf89a7a4080a47aa10a5504291db285bf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf89a7a4080a47aa10a5504291db285bf">&#9670;&nbsp;</a></span>MAX_I2C_BUSES <span class="overload">[7/11]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MAX_I2C_BUSES&#160;&#160;&#160;3</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="gaf89a7a4080a47aa10a5504291db285bf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf89a7a4080a47aa10a5504291db285bf">&#9670;&nbsp;</a></span>MAX_I2C_BUSES <span class="overload">[8/11]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MAX_I2C_BUSES&#160;&#160;&#160;2</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="gaf89a7a4080a47aa10a5504291db285bf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf89a7a4080a47aa10a5504291db285bf">&#9670;&nbsp;</a></span>MAX_I2C_BUSES <span class="overload">[9/11]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MAX_I2C_BUSES&#160;&#160;&#160;1</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="gaf89a7a4080a47aa10a5504291db285bf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf89a7a4080a47aa10a5504291db285bf">&#9670;&nbsp;</a></span>MAX_I2C_BUSES <span class="overload">[10/11]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MAX_I2C_BUSES&#160;&#160;&#160;2</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="gaf89a7a4080a47aa10a5504291db285bf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf89a7a4080a47aa10a5504291db285bf">&#9670;&nbsp;</a></span>MAX_I2C_BUSES <span class="overload">[11/11]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MAX_I2C_BUSES&#160;&#160;&#160;4</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="gaf9d9d027ce20f528edea144203141714"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf9d9d027ce20f528edea144203141714">&#9670;&nbsp;</a></span>MAX_SWI_BUSES <span class="overload">[1/4]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MAX_SWI_BUSES&#160;&#160;&#160;6</td>
        </tr>
      </table>
</div><div class="memdoc">
<ul>
<li>this HAL implementation assumes you've included the ASF SERCOM UART libraries in your project, otherwise, the HAL layer will not compile because the ASF UART drivers are a dependency * </li>
</ul>

</div>
</div>
<a id="gaf9d9d027ce20f528edea144203141714"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf9d9d027ce20f528edea144203141714">&#9670;&nbsp;</a></span>MAX_SWI_BUSES <span class="overload">[2/4]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MAX_SWI_BUSES&#160;&#160;&#160;1</td>
        </tr>
      </table>
</div><div class="memdoc">
<ul>
<li>this HAL implementation assumes you've included the ASF UART libraries in your project, otherwise, the HAL layer will not compile because the ASF UART drivers are a dependency * </li>
</ul>

</div>
</div>
<a id="gaf9d9d027ce20f528edea144203141714"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf9d9d027ce20f528edea144203141714">&#9670;&nbsp;</a></span>MAX_SWI_BUSES <span class="overload">[3/4]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MAX_SWI_BUSES&#160;&#160;&#160;6</td>
        </tr>
      </table>
</div><div class="memdoc">
<ul>
<li>this HAL implementation assumes you've included the ASF UART libraries in your project, otherwise, the HAL layer will not compile because the ASF UART drivers are a dependency * </li>
</ul>

</div>
</div>
<a id="gaf9d9d027ce20f528edea144203141714"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf9d9d027ce20f528edea144203141714">&#9670;&nbsp;</a></span>MAX_SWI_BUSES <span class="overload">[4/4]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MAX_SWI_BUSES&#160;&#160;&#160;6</td>
        </tr>
      </table>
</div><div class="memdoc">
<ul>
<li>this HAL implementation assumes you've included the ASF SERCOM UART libraries in your project, otherwise, the HAL layer will not compile because the ASF UART drivers are a dependency * </li>
</ul>

</div>
</div>
<a id="gac6afabdc09a49a433ee19d8a9486056d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac6afabdc09a49a433ee19d8a9486056d">&#9670;&nbsp;</a></span>min</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define min</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">a, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">b&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;(((a) &lt; (b)) ? (a) : (b))</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="gab45577245cf4a8ead70e2d56965f2df3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab45577245cf4a8ead70e2d56965f2df3">&#9670;&nbsp;</a></span>RECEIVE_MODE <span class="overload">[1/4]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define RECEIVE_MODE&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="gab45577245cf4a8ead70e2d56965f2df3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab45577245cf4a8ead70e2d56965f2df3">&#9670;&nbsp;</a></span>RECEIVE_MODE <span class="overload">[2/4]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define RECEIVE_MODE&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="gab45577245cf4a8ead70e2d56965f2df3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab45577245cf4a8ead70e2d56965f2df3">&#9670;&nbsp;</a></span>RECEIVE_MODE <span class="overload">[3/4]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define RECEIVE_MODE&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="gab45577245cf4a8ead70e2d56965f2df3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab45577245cf4a8ead70e2d56965f2df3">&#9670;&nbsp;</a></span>RECEIVE_MODE <span class="overload">[4/4]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define RECEIVE_MODE&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="gac55a27e4c3eae59bb1687eb7e8d1fe4b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac55a27e4c3eae59bb1687eb7e8d1fe4b">&#9670;&nbsp;</a></span>RX_DELAY <span class="overload">[1/4]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define RX_DELAY&#160;&#160;&#160;10</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="gac55a27e4c3eae59bb1687eb7e8d1fe4b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac55a27e4c3eae59bb1687eb7e8d1fe4b">&#9670;&nbsp;</a></span>RX_DELAY <span class="overload">[2/4]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define RX_DELAY&#160;&#160;&#160;10</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="gac55a27e4c3eae59bb1687eb7e8d1fe4b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac55a27e4c3eae59bb1687eb7e8d1fe4b">&#9670;&nbsp;</a></span>RX_DELAY <span class="overload">[3/4]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define RX_DELAY&#160;&#160;&#160;10</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="gac55a27e4c3eae59bb1687eb7e8d1fe4b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac55a27e4c3eae59bb1687eb7e8d1fe4b">&#9670;&nbsp;</a></span>RX_DELAY <span class="overload">[4/4]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define RX_DELAY&#160;&#160;&#160;10</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga13c01ac16bb14fde75e9c00dcd1cc761"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga13c01ac16bb14fde75e9c00dcd1cc761">&#9670;&nbsp;</a></span>SWI_FLAG_CMD</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SWI_FLAG_CMD&#160;&#160;&#160;((uint8_t)0x77)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>flag preceding a command </p>

</div>
</div>
<a id="ga6219d68ef915fdcd734f51960ba08fb6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6219d68ef915fdcd734f51960ba08fb6">&#9670;&nbsp;</a></span>SWI_FLAG_IDLE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SWI_FLAG_IDLE&#160;&#160;&#160;((uint8_t)0xBB)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>flag requesting to go into Idle mode </p>

</div>
</div>
<a id="ga13ef2322176ad9b7ba3d2e23b277cce6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga13ef2322176ad9b7ba3d2e23b277cce6">&#9670;&nbsp;</a></span>SWI_FLAG_SLEEP</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SWI_FLAG_SLEEP&#160;&#160;&#160;((uint8_t)0xCC)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>flag requesting to go into Sleep mode </p>

</div>
</div>
<a id="ga20af8352e13a7357650ba1cbf41349ea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga20af8352e13a7357650ba1cbf41349ea">&#9670;&nbsp;</a></span>SWI_FLAG_TX</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SWI_FLAG_TX&#160;&#160;&#160;((uint8_t)0x88)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>flag requesting a response </p>

</div>
</div>
<a id="ga8f12e3b749e7b3dc905114cc7b8d0b38"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8f12e3b749e7b3dc905114cc7b8d0b38">&#9670;&nbsp;</a></span>SWI_WAKE_TOKEN</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SWI_WAKE_TOKEN&#160;&#160;&#160;((uint8_t)0x00)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>flag preceding a command </p>

</div>
</div>
<a id="ga4b85133b317e72410ea0762d637d3460"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4b85133b317e72410ea0762d637d3460">&#9670;&nbsp;</a></span>TRANSMIT_MODE <span class="overload">[1/4]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TRANSMIT_MODE&#160;&#160;&#160;1</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga4b85133b317e72410ea0762d637d3460"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4b85133b317e72410ea0762d637d3460">&#9670;&nbsp;</a></span>TRANSMIT_MODE <span class="overload">[2/4]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TRANSMIT_MODE&#160;&#160;&#160;1</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga4b85133b317e72410ea0762d637d3460"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4b85133b317e72410ea0762d637d3460">&#9670;&nbsp;</a></span>TRANSMIT_MODE <span class="overload">[3/4]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TRANSMIT_MODE&#160;&#160;&#160;1</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga4b85133b317e72410ea0762d637d3460"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4b85133b317e72410ea0762d637d3460">&#9670;&nbsp;</a></span>TRANSMIT_MODE <span class="overload">[4/4]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TRANSMIT_MODE&#160;&#160;&#160;1</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga3f3816567a2f513dd0e1f9eb17992fb2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3f3816567a2f513dd0e1f9eb17992fb2">&#9670;&nbsp;</a></span>TX_DELAY <span class="overload">[1/4]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TX_DELAY&#160;&#160;&#160;90</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga3f3816567a2f513dd0e1f9eb17992fb2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3f3816567a2f513dd0e1f9eb17992fb2">&#9670;&nbsp;</a></span>TX_DELAY <span class="overload">[2/4]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TX_DELAY&#160;&#160;&#160;90</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga3f3816567a2f513dd0e1f9eb17992fb2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3f3816567a2f513dd0e1f9eb17992fb2">&#9670;&nbsp;</a></span>TX_DELAY <span class="overload">[3/4]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TX_DELAY&#160;&#160;&#160;90</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga3f3816567a2f513dd0e1f9eb17992fb2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3f3816567a2f513dd0e1f9eb17992fb2">&#9670;&nbsp;</a></span>TX_DELAY <span class="overload">[4/4]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TX_DELAY&#160;&#160;&#160;93</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga5a8416082aa7664c94099d3d787eee3c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5a8416082aa7664c94099d3d787eee3c">&#9670;&nbsp;</a></span>us_SCALE <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define us_SCALE&#160;&#160;&#160;((<a class="el" href="a00993.html#ga512016e5f1966a8fd45b3f1a81ba5b8f">CPU_CLOCK</a> / 2) / 1000000)</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga5a8416082aa7664c94099d3d787eee3c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5a8416082aa7664c94099d3d787eee3c">&#9670;&nbsp;</a></span>us_SCALE <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define us_SCALE&#160;&#160;&#160;(<a class="el" href="a00993.html#ga2f50cb3bdd9fd741e11f2389ea1bff4a">GetSystemClock</a>() / 2000000)</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="ga2df85bfd309840b4c9a5087e053d4811"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2df85bfd309840b4c9a5087e053d4811">&#9670;&nbsp;</a></span>atcacdc_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="a01125.html">atcacdc</a>  <a class="el" href="a00993.html#ga2df85bfd309840b4c9a5087e053d4811">atcacdc_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga2416cca7ee952e679d466e3349d65035"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2416cca7ee952e679d466e3349d65035">&#9670;&nbsp;</a></span>atcahid_t <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="a01113.html">atcahid</a>  <a class="el" href="a00993.html#ga2416cca7ee952e679d466e3349d65035">atcahid_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga2416cca7ee952e679d466e3349d65035"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2416cca7ee952e679d466e3349d65035">&#9670;&nbsp;</a></span>atcahid_t <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="a01113.html">atcahid</a>  <a class="el" href="a00993.html#ga2416cca7ee952e679d466e3349d65035">atcahid_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga2416cca7ee952e679d466e3349d65035"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2416cca7ee952e679d466e3349d65035">&#9670;&nbsp;</a></span>atcahid_t <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="a01113.html">atcahid</a>  <a class="el" href="a00993.html#ga2416cca7ee952e679d466e3349d65035">atcahid_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="gae8f36006f14bf6a9f4914bac69ed9f98"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae8f36006f14bf6a9f4914bac69ed9f98">&#9670;&nbsp;</a></span>ATCAI2CMaster_t <span class="overload">[1/12]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="a01117.html">atcaI2Cmaster</a>  <a class="el" href="a00993.html#gae8f36006f14bf6a9f4914bac69ed9f98">ATCAI2CMaster_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="gae8f36006f14bf6a9f4914bac69ed9f98"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae8f36006f14bf6a9f4914bac69ed9f98">&#9670;&nbsp;</a></span>ATCAI2CMaster_t <span class="overload">[2/12]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="a01117.html">atcaI2Cmaster</a>  <a class="el" href="a00993.html#gae8f36006f14bf6a9f4914bac69ed9f98">ATCAI2CMaster_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>this is the hal_data for ATCA HAL created using ASF </p>

</div>
</div>
<a id="gae8f36006f14bf6a9f4914bac69ed9f98"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae8f36006f14bf6a9f4914bac69ed9f98">&#9670;&nbsp;</a></span>ATCAI2CMaster_t <span class="overload">[3/12]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="a01117.html">atcaI2Cmaster</a>  <a class="el" href="a00993.html#gae8f36006f14bf6a9f4914bac69ed9f98">ATCAI2CMaster_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>this is the hal_data for ATCA HAL for ASF </p>

</div>
</div>
<a id="gae8f36006f14bf6a9f4914bac69ed9f98"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae8f36006f14bf6a9f4914bac69ed9f98">&#9670;&nbsp;</a></span>ATCAI2CMaster_t <span class="overload">[4/12]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="a01117.html">atcaI2Cmaster</a>  <a class="el" href="a00993.html#gae8f36006f14bf6a9f4914bac69ed9f98">ATCAI2CMaster_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>this is the hal_data for ATCA HAL for Atmel START SERCOM </p>

</div>
</div>
<a id="gae8f36006f14bf6a9f4914bac69ed9f98"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae8f36006f14bf6a9f4914bac69ed9f98">&#9670;&nbsp;</a></span>ATCAI2CMaster_t <span class="overload">[5/12]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="a01117.html">atcaI2Cmaster</a>  <a class="el" href="a00993.html#gae8f36006f14bf6a9f4914bac69ed9f98">ATCAI2CMaster_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>this is the hal_data for ATCA HAL created using ASF </p>

</div>
</div>
<a id="gae8f36006f14bf6a9f4914bac69ed9f98"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae8f36006f14bf6a9f4914bac69ed9f98">&#9670;&nbsp;</a></span>ATCAI2CMaster_t <span class="overload">[6/12]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="a01117.html">atcaI2Cmaster</a>  <a class="el" href="a00993.html#gae8f36006f14bf6a9f4914bac69ed9f98">ATCAI2CMaster_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>this is the hal_data for ATCA HAL </p>

</div>
</div>
<a id="gae8f36006f14bf6a9f4914bac69ed9f98"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae8f36006f14bf6a9f4914bac69ed9f98">&#9670;&nbsp;</a></span>ATCAI2CMaster_t <span class="overload">[7/12]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="a01117.html">atcaI2Cmaster</a>  <a class="el" href="a00993.html#gae8f36006f14bf6a9f4914bac69ed9f98">ATCAI2CMaster_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>this is the hal_data for ATCA HAL for ASF SERCOM </p>

</div>
</div>
<a id="gae8f36006f14bf6a9f4914bac69ed9f98"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae8f36006f14bf6a9f4914bac69ed9f98">&#9670;&nbsp;</a></span>ATCAI2CMaster_t <span class="overload">[8/12]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="a01117.html">atcaI2Cmaster</a>  <a class="el" href="a00993.html#gae8f36006f14bf6a9f4914bac69ed9f98">ATCAI2CMaster_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>this is the hal_data for ATCA HAL for ASF SERCOM </p>

</div>
</div>
<a id="gae8f36006f14bf6a9f4914bac69ed9f98"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae8f36006f14bf6a9f4914bac69ed9f98">&#9670;&nbsp;</a></span>ATCAI2CMaster_t <span class="overload">[9/12]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="a01117.html">atcaI2Cmaster</a>  <a class="el" href="a00993.html#gae8f36006f14bf6a9f4914bac69ed9f98">ATCAI2CMaster_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>this is the hal_data for ATCA HAL </p>

</div>
</div>
<a id="gae8f36006f14bf6a9f4914bac69ed9f98"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae8f36006f14bf6a9f4914bac69ed9f98">&#9670;&nbsp;</a></span>ATCAI2CMaster_t <span class="overload">[10/12]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="a01117.html">atcaI2Cmaster</a>  <a class="el" href="a00993.html#gae8f36006f14bf6a9f4914bac69ed9f98">ATCAI2CMaster_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>this is the hal_data for ATCA HAL </p>

</div>
</div>
<a id="gae8f36006f14bf6a9f4914bac69ed9f98"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae8f36006f14bf6a9f4914bac69ed9f98">&#9670;&nbsp;</a></span>ATCAI2CMaster_t <span class="overload">[11/12]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="a01117.html">atcaI2Cmaster</a>  <a class="el" href="a00993.html#gae8f36006f14bf6a9f4914bac69ed9f98">ATCAI2CMaster_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>this is the hal_data for ATCA HAL </p>

</div>
</div>
<a id="gae8f36006f14bf6a9f4914bac69ed9f98"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae8f36006f14bf6a9f4914bac69ed9f98">&#9670;&nbsp;</a></span>ATCAI2CMaster_t <span class="overload">[12/12]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="a01117.html">atcaI2Cmaster</a>  <a class="el" href="a00993.html#gae8f36006f14bf6a9f4914bac69ed9f98">ATCAI2CMaster_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This is the hal_data for ATCA HAL. </p>

</div>
</div>
<a id="ga257ed552f7d68eb1e5d3ca7baa01559a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga257ed552f7d68eb1e5d3ca7baa01559a">&#9670;&nbsp;</a></span>ATCASWIMaster_t <span class="overload">[1/5]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="a01137.html">atcaSWImaster</a>  <a class="el" href="a00993.html#ga257ed552f7d68eb1e5d3ca7baa01559a">ATCASWIMaster_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>this is the hal_data for ATCA HAL for SWI UART </p>

</div>
</div>
<a id="ga257ed552f7d68eb1e5d3ca7baa01559a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga257ed552f7d68eb1e5d3ca7baa01559a">&#9670;&nbsp;</a></span>ATCASWIMaster_t <span class="overload">[2/5]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="a01137.html">atcaSWImaster</a>  <a class="el" href="a00993.html#ga257ed552f7d68eb1e5d3ca7baa01559a">ATCASWIMaster_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>this is the hal_data for ATCA HAL for SWI UART </p>

</div>
</div>
<a id="ga257ed552f7d68eb1e5d3ca7baa01559a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga257ed552f7d68eb1e5d3ca7baa01559a">&#9670;&nbsp;</a></span>ATCASWIMaster_t <span class="overload">[3/5]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="a01137.html">atcaSWImaster</a>  <a class="el" href="a00993.html#ga257ed552f7d68eb1e5d3ca7baa01559a">ATCASWIMaster_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>this is the hal_data for ATCA HAL for ASF SERCOM </p>

</div>
</div>
<a id="ga257ed552f7d68eb1e5d3ca7baa01559a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga257ed552f7d68eb1e5d3ca7baa01559a">&#9670;&nbsp;</a></span>ATCASWIMaster_t <span class="overload">[4/5]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="a01137.html">atcaSWImaster</a>  <a class="el" href="a00993.html#ga257ed552f7d68eb1e5d3ca7baa01559a">ATCASWIMaster_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>this is the hal_data for ATCA HAL for ASF SERCOM </p>

</div>
</div>
<a id="ga257ed552f7d68eb1e5d3ca7baa01559a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga257ed552f7d68eb1e5d3ca7baa01559a">&#9670;&nbsp;</a></span>ATCASWIMaster_t <span class="overload">[5/5]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="a01137.html">atcaSWImaster</a>  <a class="el" href="a00993.html#ga257ed552f7d68eb1e5d3ca7baa01559a">ATCASWIMaster_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This is the hal_data for ATCA HAL. </p>

</div>
</div>
<a id="ga99ee56102171adcbcecb8a78fb9fa895"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga99ee56102171adcbcecb8a78fb9fa895">&#9670;&nbsp;</a></span>cdc_device_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="a01121.html">cdc_device</a>  <a class="el" href="a00993.html#ga99ee56102171adcbcecb8a78fb9fa895">cdc_device_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga069bb8cb95b0528d5ce0304bb5561a40"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga069bb8cb95b0528d5ce0304bb5561a40">&#9670;&nbsp;</a></span>HANDLE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef int <a class="el" href="a00993.html#ga069bb8cb95b0528d5ce0304bb5561a40">HANDLE</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga5f2f61628e945fd6538155628fc3a17a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5f2f61628e945fd6538155628fc3a17a">&#9670;&nbsp;</a></span>hid_device_t <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="a01129.html">hid_device</a>  <a class="el" href="a00993.html#ga5f2f61628e945fd6538155628fc3a17a">hid_device_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga5f2f61628e945fd6538155628fc3a17a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5f2f61628e945fd6538155628fc3a17a">&#9670;&nbsp;</a></span>hid_device_t <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="a01129.html">hid_device</a>  <a class="el" href="a00993.html#ga5f2f61628e945fd6538155628fc3a17a">hid_device_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="gaa3e90779b37cd1b3a4d32321d9d8b772"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa3e90779b37cd1b3a4d32321d9d8b772">&#9670;&nbsp;</a></span>i2c_read_write_flag</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="a00993.html#gaa3e90779b37cd1b3a4d32321d9d8b772">i2c_read_write_flag</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This enumeration lists flags for I2C read or write addressing. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggaa3e90779b37cd1b3a4d32321d9d8b772adbf6337ed546b3c21fd08c397a346bb2"></a>I2C_WRITE&#160;</td><td class="fielddoc"><p>write command flag </p>
</td></tr>
<tr><td class="fieldname"><a id="ggaa3e90779b37cd1b3a4d32321d9d8b772a30040082a257338fe25e5bd5136bc9a8"></a>I2C_READ&#160;</td><td class="fielddoc"><p>read command flag </p>
</td></tr>
</table>

</div>
</div>
<a id="ga8759b00e645502d0f1c3b7330e20e52b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8759b00e645502d0f1c3b7330e20e52b">&#9670;&nbsp;</a></span>swi_flag</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="a00993.html#ga8759b00e645502d0f1c3b7330e20e52b">swi_flag</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This enumeration lists flags for SWI. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga8759b00e645502d0f1c3b7330e20e52babacdf58fcbc837d4c4e6d9640e157340"></a>SWI_FLAG_CMD&#160;</td><td class="fielddoc"><p>flag preceding a command </p>
</td></tr>
<tr><td class="fieldname"><a id="gga8759b00e645502d0f1c3b7330e20e52ba17fa7af18b61921986085f42fc05cc9f"></a>SWI_FLAG_TX&#160;</td><td class="fielddoc"><p>flag requesting a response </p>
</td></tr>
<tr><td class="fieldname"><a id="gga8759b00e645502d0f1c3b7330e20e52baeb0778b0887019be95260a2c0420d21a"></a>SWI_FLAG_IDLE&#160;</td><td class="fielddoc"><p>flag requesting to go into Idle mode </p>
</td></tr>
<tr><td class="fieldname"><a id="gga8759b00e645502d0f1c3b7330e20e52ba1d93b236433ad7d6c2b82659009f42f7"></a>SWI_FLAG_SLEEP&#160;</td><td class="fielddoc"><p>flag requesting to go into Sleep mode </p>
</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga19891182689551cc3a88603135959351"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga19891182689551cc3a88603135959351">&#9670;&nbsp;</a></span>atca_delay_10us()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void atca_delay_10us </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>delay</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function delays for a number of tens of microseconds. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">delay</td><td>number of 0.01 milliseconds to delay </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga80a853a202b089064bfc4b159c3418b4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga80a853a202b089064bfc4b159c3418b4">&#9670;&nbsp;</a></span>atca_delay_ms()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void atca_delay_ms </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>delay</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function delays for a number of milliseconds. </p>
<pre class="fragment">   You can override this function if you like to do
   something else in your system while delaying.
</pre> <dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">delay</td><td>number of milliseconds to delay </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga7598dfcd6dcac882836544d48356d02f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7598dfcd6dcac882836544d48356d02f">&#9670;&nbsp;</a></span>atca_delay_us()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void atca_delay_us </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>delay</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Timer API implemented at the HAL level. </p>
<p>This function delays for a number of microseconds.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">delay</td><td>number of microseconds to delay</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">delay</td><td>number of 0.001 milliseconds to delay </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gab7f613b378e0d01b80703df3ac662d6d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab7f613b378e0d01b80703df3ac662d6d">&#9670;&nbsp;</a></span>change_i2c_speed()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void change_i2c_speed </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a>&#160;</td>
          <td class="paramname"><em>iface</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>speed</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>method to change the bus speed of I2C </p>
<p>method to change the bus speed of I2C.This function is not used in Linux.</p>
<p>method to change the bus speec of I2C</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>interface on which to change bus speed </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">speed</td><td>baud rate (typically 100000 or 400000)</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>interface on which to change bus speed </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">speed</td><td>baud rate (typically 100000 or 400000) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>

</div>
</div>
<a id="ga31c35882825888bc79e420905830f25d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga31c35882825888bc79e420905830f25d">&#9670;&nbsp;</a></span>delay_us() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void delay_us </td>
          <td>(</td>
          <td class="paramtype">UINT32&#160;</td>
          <td class="paramname"><em>delay</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="gafd0e52ccc611a61fcd1b0b6cd1a19efd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafd0e52ccc611a61fcd1b0b6cd1a19efd">&#9670;&nbsp;</a></span>delay_us() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void delay_us </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>delay</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga6ec842c5f4674de5da640541e616785a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6ec842c5f4674de5da640541e616785a">&#9670;&nbsp;</a></span>hal_cdc_discover_buses()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_cdc_discover_buses </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>cdc_buses</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>max_buses</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>discover cdc buses available for this hardware this maintains a list of logical to physical bus mappings freeing the application of the a-priori knowledge.This function is currently not implemented. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cdc_buses</td><td>- an array of logical bus numbers </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">max_buses</td><td>- maximum number of buses the app wants to attempt to discover </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>

</div>
</div>
<a id="ga5604d17ec61ab15961079beb8f3c8682"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5604d17ec61ab15961079beb8f3c8682">&#9670;&nbsp;</a></span>hal_cdc_discover_devices()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_cdc_discover_devices </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>bus_num</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a01013.html">ATCAIfaceCfg</a>&#160;</td>
          <td class="paramname"><em>cfg</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>found</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>discover any CryptoAuth devices on a given logical bus number </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">bus_num</td><td>- logical bus number on which to look for CryptoAuth devices </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">cfg[]</td><td>- pointer to head of an array of interface config structures which get filled in by this method </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">*found</td><td>- number of devices found on this bus </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>

</div>
</div>
<a id="ga6ce92f1d10000eb6618fc74c2ca92d76"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6ce92f1d10000eb6618fc74c2ca92d76">&#9670;&nbsp;</a></span>hal_check_wake()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_check_wake </td>
          <td>(</td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>response</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>response_size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Utility function for hal_wake to check the reply. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">response</td><td>Wake response to be checked. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">response_size</td><td>Size of the response to check. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS for expected wake, ATCA_STATUS_SELFTEST_ERROR if the power on self test failed, ATCA_WAKE_FAILED for other failures. </dd></dl>

</div>
</div>
<a id="gab289a3949663589ac6be71d72fb18278"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab289a3949663589ac6be71d72fb18278">&#9670;&nbsp;</a></span>hal_create_mutex()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_create_mutex </td>
          <td>(</td>
          <td class="paramtype">void **&#160;</td>
          <td class="paramname"><em>ppMutex</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>pName</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Optional hal interfaces. </p>

</div>
</div>
<a id="ga4589d7b3e951f40b7928f1cf31f7ddf3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4589d7b3e951f40b7928f1cf31f7ddf3">&#9670;&nbsp;</a></span>hal_destroy_mutex()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_destroy_mutex </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>pMutex</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga05700385437884cc7b28c38d33e84f8c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga05700385437884cc7b28c38d33e84f8c">&#9670;&nbsp;</a></span>hal_i2c_discover_buses()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_i2c_discover_buses </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>i2c_buses</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>max_buses</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>discover i2c buses available for this hardware this maintains a list of logical to physical bus mappings freeing the application of the prior knowledge </p>
<p>This HAL implementation assumes you've included the ASF TWI libraries in your project, otherwise, the HAL layer will not compile because the ASF TWI drivers are a dependency.</p>
<p>This HAL implementation assumes you've included the Plib libraries in your project, otherwise, the HAL layer will not compile because the Plib drivers are a dependency.</p>
<p>discover i2c buses available for this hardware this maintains a list of logical to physical bus mappings freeing the application of the a-priori knowledge.This function is not implemented.</p>
<p>discover i2c buses available for this hardware this maintains a list of logical to physical bus mappings freeing the application of the a-priori knowledge</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">i2c_buses</td><td>an array of logical bus numbers </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">max_buses</td><td>maximum number of buses the app wants to attempt to discover </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">i2c_buses</td><td>- an array of logical bus numbers </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">max_buses</td><td>- maximum number of buses the app wants to attempt to discover </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">i2c_buses</td><td>- an array of logical bus numbers </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">max_buses</td><td>- maximum number of buses the app wants to attempt to discover </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">i2c_buses</td><td>- an array of logical bus numbers </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">max_buses</td><td>- maximum number of buses the app wants to attempt to discover </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_UNIMPLEMENTED</dd></dl>
<p>discover i2c buses available for this hardware this maintains a list of logical to physical bus mappings freeing the application of the a-priori knowledge.This function is currently not implemented. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">i2c_buses</td><td>- an array of logical bus numbers </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">max_buses</td><td>- maximum number of buses the app wants to attempt to discover </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_UNIMPLEMENTED</dd></dl>
<p>discover i2c buses available for this hardware this maintains a list of logical to physical bus mappings freeing the application of the a-priori knowledge </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">i2c_buses</td><td>- an array of logical bus numbers </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">max_buses</td><td>- maximum number of buses the app wants to attempt to discover </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS</dd></dl>
<p>discover i2c buses available for this hardware this maintains a list of logical to physical bus mappings freeing the application of the a-priori knowledge </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">i2c_buses</td><td>- an array of logical bus numbers </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">max_buses</td><td>- maximum number of buses the app wants to attempt to discover return ATCA_SUCCESS </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gac7644e62498a596c09952ee3b28017b9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac7644e62498a596c09952ee3b28017b9">&#9670;&nbsp;</a></span>hal_i2c_discover_devices()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_i2c_discover_devices </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>bus_num</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a01013.html">ATCAIfaceCfg</a>&#160;</td>
          <td class="paramname"><em>cfg</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>found</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>discover any CryptoAuth devices on a given logical bus number </p>
<p>discover any CryptoAuth devices on a given logical bus number.This function is currently not implemented.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">bus_num</td><td>logical bus number on which to look for CryptoAuth devices </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">cfg</td><td>pointer to head of an array of interface config structures which get filled in by this method </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">found</td><td>number of devices found on this bus </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">bus_num</td><td>- logical bus number on which to look for CryptoAuth devices </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">cfg[]</td><td>- pointer to head of an array of interface config structures which get filled in by this method </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">*found</td><td>- number of devices found on this bus </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">bus_num</td><td>logical bus number on which to look for CryptoAuth devices </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">cfg</td><td>pointer to head of an array of interface config structures which get filled in by this method </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">found</td><td>number of devices found on this bus </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">bus_num</td><td>logical bus number on which to look for CryptoAuth devices </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">cfg</td><td>pointer to head of an array of interface config structures which get filled in by this method </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">found</td><td>number of devices found on this bus </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_UNIMPLEMENTED</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">bus_num</td><td>- logical bus number on which to look for CryptoAuth devices </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">cfg[]</td><td>- pointer to head of an array of interface config structures which get filled in by this method </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">*found</td><td>- number of devices found on this bus </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_UNIMPLEMENTED</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">bus_num</td><td>- logical bus number on which to look for CryptoAuth devices </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">cfg[]</td><td>- pointer to head of an array of interface config structures which get filled in by this method </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">*found</td><td>- number of devices found on this bus </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">bus_num</td><td>Logical bus number on which to look for CryptoAuth devices </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">cfg</td><td>Pointer to head of an array of interface config structures which get filled in by this method </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">found</td><td>Number of devices found on this bus </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>
<p>default configuration, to be reused during discovery process</p>
<p>default configuration, to be reused during discovery process</p>
<p>default configuration, to be reused during discovery process</p>
<p>default configuration, to be reused during discovery process</p>
<p>default configuration, to be reused during discovery process</p>
<p>default configuration, to be reused during discovery process</p>
<p>default configuration, to be reused during discovery process</p>
<p>default configuration, to be reused during discovery process </p>

</div>
</div>
<a id="ga9317303ada721ff3f97e7aad69437a30"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9317303ada721ff3f97e7aad69437a30">&#9670;&nbsp;</a></span>hal_i2c_idle()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_i2c_idle </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a>&#160;</td>
          <td class="paramname"><em>iface</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>idle CryptoAuth device using I2C bus </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>interface to logical device to idle </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>interface to logical device to idle</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS </dd></dl>
<p>&lt; Word Address Value = Idle </p>

</div>
</div>
<a id="ga09e7f465a040fbd19ea136269571de3c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga09e7f465a040fbd19ea136269571de3c">&#9670;&nbsp;</a></span>hal_i2c_init()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_i2c_init </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>hal</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a01013.html">ATCAIfaceCfg</a> *&#160;</td>
          <td class="paramname"><em>cfg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>initialize an I2C interface using given config </p>
<p>HAL implementation of I2C init.</p>
<p>hal_i2c_init manages requests to initialize a physical interface. it manages use counts so when an interface has released the physical layer, it will disable the interface for some other use. You can have multiple ATCAIFace instances using the same bus, and you can have multiple ATCAIFace instances on multiple i2c buses, so hal_i2c_init manages these things and ATCAIFace is abstracted from the physical details.</p>
<p>hal_i2c_init manages requests to initialize a physical interface. It manages use counts so when an interface has released the physical layer, it will disable the interface for some other use. You can have multiple ATCAIFace instances using the same bus, and you can have multiple ATCAIFace instances on multiple i2c buses, so hal_i2c_init manages these things and ATCAIFace is abstracted from the physical details.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">hal</td><td>opaque ptr to HAL data </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cfg</td><td>pointer to interface configuration </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code.</dd></dl>
<p>Initialize an I2C interface using given config.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">hal</td><td>opaque pointer to HAL data </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cfg</td><td>interface configuration</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code.</dd></dl>
<ul>
<li>this HAL implementation assumes you've included the START Twi libraries in your project, otherwise, the HAL layer will not compile because the START TWI drivers are a dependency *initialize an I2C interface using given config <dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">hal</td><td>- opaque ptr to HAL data </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cfg</td><td>- interface configuration </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code.</dd></dl>
this implementation assumes I2C peripheral has been enabled by user. It only initialize an I2C interface using given config.</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">hal</td><td>pointer to HAL specific data that is maintained by this HAL </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cfg</td><td>pointer to HAL specific configuration data that is used to initialize this HAL </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code.</dd></dl>
<p>initialize an I2C interface using given config</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">hal</td><td>- opaque ptr to HAL data </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cfg</td><td>- interface configuration</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code.</dd></dl>
<ul>
<li>this HAL implementation assumes you've included the ASF I2C libraries in your project, otherwise, the HAL layer will not compile because the ASF I2C drivers are a dependency *initialize an I2C interface using given config <dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">hal</td><td>- opaque ptr to HAL data </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cfg</td><td>- interface configuration </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code.</dd></dl>
</li>
<li>this HAL implementation assumes you've included the ASF SERCOM I2C libraries in your project, otherwise, the HAL layer will not compile because the ASF I2C drivers are a dependency *initialize an I2C interface using given config <dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">hal</td><td>- opaque ptr to HAL data </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cfg</td><td>- interface configuration </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code.</dd></dl>
</li>
<li>this HAL implementation assumes you've included the ASF Twi libraries in your project, otherwise, the HAL layer will not compile because the ASF TWI drivers are a dependency *initialize an I2C interface using given config <dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">hal</td><td>- opaque ptr to HAL data </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cfg</td><td>- interface configuration </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>
</li>
</ul>

</div>
</div>
<a id="gafbe53519362f18c2688d10da6f7c618f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafbe53519362f18c2688d10da6f7c618f">&#9670;&nbsp;</a></span>hal_i2c_post_init()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_i2c_post_init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a>&#160;</td>
          <td class="paramname"><em>iface</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>HAL implementation of I2C post init. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>instance </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>instance </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_STATUS</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>instance </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS </dd></dl>

</div>
</div>
<a id="ga7785bcc305c14e2dc188bb1b9a77814a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7785bcc305c14e2dc188bb1b9a77814a">&#9670;&nbsp;</a></span>hal_i2c_receive()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_i2c_receive </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a>&#160;</td>
          <td class="paramname"><em>iface</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>rxdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t *&#160;</td>
          <td class="paramname"><em>rxlength</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>HAL implementation of I2C receive function for ASF I2C. </p>
<p>HAL implementation of I2C receive function.</p>
<p>HAL implementation of I2C receive function for START I2C.</p>
<p>HAL implementation of receive bytes via I2C bit-banged.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>Device to interact with. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">rxdata</td><td>Data received will be returned here. </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">rxlength</td><td>As input, the size of the rxdata buffer. As output, the number of bytes received. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>

</div>
</div>
<a id="gac382cc4431d2d1c721c21a453ba36c22"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac382cc4431d2d1c721c21a453ba36c22">&#9670;&nbsp;</a></span>hal_i2c_release()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_i2c_release </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>hal_data</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>manages reference count on given bus and releases resource if no more refences exist </p>
<p>manages reference count on given bus and releases resource if no more refernces exist</p>
<p>manages reference count on given bus and releases resource if no more references exist</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">hal_data</td><td>- opaque pointer to hal data structure - known only to the HAL implementation </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">hal_data</td><td>opaque pointer to hal data structure - known only to the HAL implementation </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">hal_data</td><td>- opaque pointer to hal data structure - known only to the HAL implementation</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCESS</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">hal_data</td><td>- opaque pointer to hal data structure - known only to the HAL implementation</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">hal_data</td><td>- opaque pointer to hal data structure - known only to the HAL implementation return ATCA_SUCCESS </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gacd0fb31f0f88ef3762665e26b5aa784b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacd0fb31f0f88ef3762665e26b5aa784b">&#9670;&nbsp;</a></span>hal_i2c_send()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_i2c_send </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a>&#160;</td>
          <td class="paramname"><em>iface</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>txdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>txlength</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>HAL implementation of I2C send over ASF. </p>
<p>HAL implementation of I2C send.</p>
<p>HAL implementation of I2C send over START.</p>
<p>HAL implementation of Send byte(s) via I2C.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>instance </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">txdata</td><td>pointer to space to bytes to send </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">txlength</td><td>number of bytes to send </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>interface of the logical device to send data to </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">txdata</td><td>pointer to bytes to send </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">txlength</td><td>number of bytes to send</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>
<p>&lt; Word Address Value = Command</p>
<p>&lt; count Word Address byte towards txlength</p>
<p>Set I2C pins</p>
<p>Address the device and indicate that bytes are to be written</p>
<p>Send the remaining bytes</p>
<p>Send STOP regardless of i2c_status </p>

</div>
</div>
<a id="ga3f89bae6a625d5f37abdcc99408def27"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3f89bae6a625d5f37abdcc99408def27">&#9670;&nbsp;</a></span>hal_i2c_sleep()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_i2c_sleep </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a>&#160;</td>
          <td class="paramname"><em>iface</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>sleep CryptoAuth device using I2C bus </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>interface to logical device to sleep </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>interface to logical device to sleep</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCESS </dd></dl>
<p>&lt; Word Address Value = Sleep </p>

</div>
</div>
<a id="gad4df1b6755e2d5b5d9e810371e45ca8c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad4df1b6755e2d5b5d9e810371e45ca8c">&#9670;&nbsp;</a></span>hal_i2c_wake()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_i2c_wake </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a>&#160;</td>
          <td class="paramname"><em>iface</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>wake up CryptoAuth device using I2C bus </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>interface to logical device to wakeup </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>

</div>
</div>
<a id="gab77081d6d85ee3ab839a0882e80e9e87"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab77081d6d85ee3ab839a0882e80e9e87">&#9670;&nbsp;</a></span>hal_iface_init()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_iface_init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a01013.html">ATCAIfaceCfg</a> *&#160;</td>
          <td class="paramname"><em>cfg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a01109.html">ATCAHAL_t</a> *&#160;</td>
          <td class="paramname"><em>hal</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Standard HAL API for ATCA to initialize a physical interface. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cfg</td><td>pointer to <a class="el" href="a01013.html">ATCAIfaceCfg</a> object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">hal</td><td>pointer to <a class="el" href="a01109.html" title="an intermediary data structure to allow the HAL layer to point the standard API functions used by the...">ATCAHAL_t</a> intermediate data structure </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>

</div>
</div>
<a id="ga4be1afccb41f28f6ce620b1d5197befc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4be1afccb41f28f6ce620b1d5197befc">&#9670;&nbsp;</a></span>hal_iface_release()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_iface_release </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00989.html#gac7f674d4a0afb12d2f3c9c5e98cb1089">ATCAIfaceType</a>&#160;</td>
          <td class="paramname"><em>iface_type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>hal_data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>releases a physical interface, HAL knows how to interpret hal_data </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface_type</td><td>- the type of physical interface to release </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">hal_data</td><td>- pointer to opaque hal data maintained by HAL implementation for this interface type </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>

</div>
</div>
<a id="ga56255b770aa5e34b3e69898eaeda93e9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga56255b770aa5e34b3e69898eaeda93e9">&#9670;&nbsp;</a></span>hal_kit_cdc_discover_buses()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_kit_cdc_discover_buses </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>cdc_buses</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>max_buses</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>discover cdc buses available for this hardware this maintains a list of logical to physical bus mappings freeing the application of the a-priori knowledge.This function is currently not implemented. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cdc_buses</td><td>- an array of logical bus numbers </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">max_buses</td><td>- maximum number of buses the app wants to attempt to discover </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>

</div>
</div>
<a id="ga0a042c3f441fa78c4f05a18bfbeb5f2d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0a042c3f441fa78c4f05a18bfbeb5f2d">&#9670;&nbsp;</a></span>hal_kit_cdc_discover_devices()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_kit_cdc_discover_devices </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>bus_num</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a01013.html">ATCAIfaceCfg</a> *&#160;</td>
          <td class="paramname"><em>cfg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>found</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>discover any CryptoAuth devices on a given logical bus number </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">bus_num</td><td>- logical bus number on which to look for CryptoAuth devices </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">cfg[]</td><td>- pointer to head of an array of interface config structures which get filled in by this method </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">*found</td><td>- number of devices found on this bus </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>

</div>
</div>
<a id="ga92055a86e32f3dfc9eef064d48aa0870"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga92055a86e32f3dfc9eef064d48aa0870">&#9670;&nbsp;</a></span>hal_kit_cdc_idle()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_kit_cdc_idle </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a>&#160;</td>
          <td class="paramname"><em>iface</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Call the idle for kit protocol over USB CDC. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>ATCAIface instance that is the interface object to send the bytes over </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code.S </dd></dl>

</div>
</div>
<a id="ga313bdfc8337f930a7f9fc6ca4e7731d9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga313bdfc8337f930a7f9fc6ca4e7731d9">&#9670;&nbsp;</a></span>hal_kit_cdc_init()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_kit_cdc_init </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>hal</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a01013.html">ATCAIfaceCfg</a> *&#160;</td>
          <td class="paramname"><em>cfg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>HAL implementation of Kit USB CDC init. </p>
<p>this discovery assumes a udev rule is active which renames the ATCK101 CDC device as a ttyATCAn the udev rule is:</p>
<p>SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2122", MODE:="0777", SYMLINK+="ttyATCA%n"</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">hal</td><td>pointer to HAL specific data that is maintained by this HAL </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cfg</td><td>pointer to HAL specific configuration data that is used to initialize this HAL </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>

</div>
</div>
<a id="gad11b8714818c2b05f70593c002fc5945"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad11b8714818c2b05f70593c002fc5945">&#9670;&nbsp;</a></span>hal_kit_cdc_post_init()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_kit_cdc_post_init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a>&#160;</td>
          <td class="paramname"><em>iface</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>HAL implementation of Kit USB CDC post init. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>instance </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>

</div>
</div>
<a id="ga3f3972f81de141ff0816b605054d775a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3f3972f81de141ff0816b605054d775a">&#9670;&nbsp;</a></span>hal_kit_cdc_receive()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_kit_cdc_receive </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a>&#160;</td>
          <td class="paramname"><em>iface</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>rxdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t *&#160;</td>
          <td class="paramname"><em>rxsize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>HAL implementation of kit protocol receive over USB CDC. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>Device to interact with. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">rxdata</td><td>Data received will be returned here. </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">rxsize</td><td>As input, the size of the rxdata buffer. As output, the number of bytes received. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>

</div>
</div>
<a id="ga21a939cc86a0602cb2ba3be3eec26e6e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga21a939cc86a0602cb2ba3be3eec26e6e">&#9670;&nbsp;</a></span>hal_kit_cdc_release()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_kit_cdc_release </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>hal_data</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Close the physical port for CDC over USB CDC. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">hal_data</td><td>The hardware abstraction data specific to this HAL </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>

</div>
</div>
<a id="ga7732806c89cd206a96b7fabbaf6770d5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7732806c89cd206a96b7fabbaf6770d5">&#9670;&nbsp;</a></span>hal_kit_cdc_send()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_kit_cdc_send </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a>&#160;</td>
          <td class="paramname"><em>iface</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>txdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>txlength</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>HAL implementation of kit protocol send over USB CDC. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>instance </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">txdata</td><td>pointer to bytes to send </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">txlength</td><td>number of bytes to send </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>

</div>
</div>
<a id="ga1299c47e6d73d987bc04b16f25637bf6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1299c47e6d73d987bc04b16f25637bf6">&#9670;&nbsp;</a></span>hal_kit_cdc_sleep()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_kit_cdc_sleep </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a>&#160;</td>
          <td class="paramname"><em>iface</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Call the sleep for kit protocol over USB CDC. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>ATCAIface instance that is the interface object to send the bytes over </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>

</div>
</div>
<a id="gabced238b72e636a557d00355a2e44ac9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabced238b72e636a557d00355a2e44ac9">&#9670;&nbsp;</a></span>hal_kit_cdc_wake()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_kit_cdc_wake </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a>&#160;</td>
          <td class="paramname"><em>iface</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Call the wake for kit protocol over USB CDC. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>ATCAIface instance that is the interface object to send the bytes over </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>

</div>
</div>
<a id="ga549d0b53127f1bb10e7f34453b8a2d3c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga549d0b53127f1bb10e7f34453b8a2d3c">&#9670;&nbsp;</a></span>hal_kit_hid_discover_buses()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_kit_hid_discover_buses </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>cdc_buses</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>max_buses</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>discover cdc buses available for this hardware this maintains a list of logical to physical bus mappings freeing the application of the a-priori knowledge </p>
<p>discover all HID kits available.This function is currently not implemented. this maintains a list of logical to physical bus mappings freeing the application of the a-priori knowledge</p>
<p>discover hid buses available for this hardware this maintains a list of logical to physical bus mappings freeing the application of the a-priori knowledge.This function is currently not implemented.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cdc_buses</td><td>- an array of logical bus numbers </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">max_buses</td><td>- maximum number of buses the app wants to attempt to discover</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cdc_buses</td><td>- an array of logical bus numbers </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">max_buses</td><td>- maximum number of buses the app wants to attempt to discover </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_UNIMPLEMENTED</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cdc_buses</td><td>an array of logical bus numbers </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">max_buses</td><td>maximum number of buses the app wants to attempt to discover </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_UNIMPLEMENTED </dd></dl>

</div>
</div>
<a id="ga0121a73c96416c97ce07ed9077226588"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0121a73c96416c97ce07ed9077226588">&#9670;&nbsp;</a></span>hal_kit_hid_discover_devices()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_kit_hid_discover_devices </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>bus_num</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a01013.html">ATCAIfaceCfg</a>&#160;</td>
          <td class="paramname"><em>cfg</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>found</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>discover any CryptoAuth devices on a given logical bus number </p>
<p>discover any CryptoAuth devices on a given logical bus number.This function is currently not implemented.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">bus_num</td><td>- logical bus number on which to look for CryptoAuth devices </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">cfg[]</td><td>- pointer to head of an array of interface config structures which get filled in by this method </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">*found</td><td>- number of devices found on this bus</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">bus_num</td><td>- logical bus number on which to look for CryptoAuth devices </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">cfg[]</td><td>- pointer to head of an array of interface config structures which get filled in by this method </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">*found</td><td>- number of devices found on this bus </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_UNIMPLEMENTED </dd></dl>

</div>
</div>
<a id="gaacf6310945889a6119cab867a1ced5e2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaacf6310945889a6119cab867a1ced5e2">&#9670;&nbsp;</a></span>hal_kit_hid_idle()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_kit_hid_idle </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a>&#160;</td>
          <td class="paramname"><em>iface</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Call the idle for kit protocol. </p>
<p>Call the idle for kit protocol over USB HID.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>ATCAIface instance that is the interface object to send the bytes over </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_STATUS</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>ATCAIface instance that is the interface object to send the bytes over </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>

</div>
</div>
<a id="ga95b4e99655383680272a1d9354d42479"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga95b4e99655383680272a1d9354d42479">&#9670;&nbsp;</a></span>hal_kit_hid_init()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_kit_hid_init </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>hal</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a01013.html">ATCAIfaceCfg</a> *&#160;</td>
          <td class="paramname"><em>cfg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>HAL implementation of Kit USB HID init. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">hal</td><td>pointer to HAL specific data that is maintained by this HAL </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cfg</td><td>pointer to HAL specific configuration data that is used to initialize this HAL </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_STATUS</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">hal</td><td>pointer to HAL specific data that is maintained by this HAL </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cfg</td><td>pointer to HAL specific configuration data that is used to initialize this HAL </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>

</div>
</div>
<a id="ga6f06bc1662b3d0361f6a241e1b5612f2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6f06bc1662b3d0361f6a241e1b5612f2">&#9670;&nbsp;</a></span>hal_kit_hid_post_init()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_kit_hid_post_init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a>&#160;</td>
          <td class="paramname"><em>iface</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>HAL implementation of Kit HID post init. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>instance </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_STATUS</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>instance </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>

</div>
</div>
<a id="gaa80dfd4a91f557329fa1daf16b0f05a8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa80dfd4a91f557329fa1daf16b0f05a8">&#9670;&nbsp;</a></span>hal_kit_hid_receive()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_kit_hid_receive </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a>&#160;</td>
          <td class="paramname"><em>iface</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>rxdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t *&#160;</td>
          <td class="paramname"><em>rxsize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>HAL implementation of send over USB HID. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>instance </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">rxdata</td><td>pointer to space to receive the data </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">rxsize</td><td>ptr to expected number of receive bytes to request </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_STATUS</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>instance </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">rxdata</td><td>pointer to space to receive the data </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">rxsize</td><td>ptr to expected number of receive bytes to request </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>

</div>
</div>
<a id="ga8c7b9adb28b4bbdee8d5cd78ab16255f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8c7b9adb28b4bbdee8d5cd78ab16255f">&#9670;&nbsp;</a></span>hal_kit_hid_release()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_kit_hid_release </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>hal_data</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Close the physical port for HID. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">hal_data</td><td>The hardware abstraction data specific to this HAL </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_STATUS</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">hal_data</td><td>The hardware abstraction data specific to this HAL </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>

</div>
</div>
<a id="ga47588dbefadcc1569513b053a156f3d6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga47588dbefadcc1569513b053a156f3d6">&#9670;&nbsp;</a></span>hal_kit_hid_send()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_kit_hid_send </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a>&#160;</td>
          <td class="paramname"><em>iface</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>txdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>txlength</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>HAL implementation of kit protocol send over USB HID. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>instance </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">txdata</td><td>pointer to bytes to send </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">txlength</td><td>number of bytes to send </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_STATUS</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>instance </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">txdata</td><td>pointer to bytes to send </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">txlength</td><td>number of bytes to send </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>

</div>
</div>
<a id="ga1aa3345cb5d3e8fc29defe2758904fed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1aa3345cb5d3e8fc29defe2758904fed">&#9670;&nbsp;</a></span>hal_kit_hid_sleep()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_kit_hid_sleep </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a>&#160;</td>
          <td class="paramname"><em>iface</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Call the sleep for kit protocol. </p>
<p>Call the sleep for kit protocol over USB HID.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>ATCAIface instance that is the interface object to send the bytes over </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_STATUS</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>ATCAIface instance that is the interface object to send the bytes over </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>

</div>
</div>
<a id="ga65289262310f2662b2c47450b93c9580"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga65289262310f2662b2c47450b93c9580">&#9670;&nbsp;</a></span>hal_kit_hid_wake()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_kit_hid_wake </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a>&#160;</td>
          <td class="paramname"><em>iface</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Call the wake for kit protocol. </p>
<p>Call the wake for kit protocol over USB HID.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>ATCAIface instance that is the interface object to send the bytes over </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_STATUS</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>ATCAIface instance that is the interface object to send the bytes over </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>

</div>
</div>
<a id="ga5fac3cf3552eee701aec448c1392edd8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5fac3cf3552eee701aec448c1392edd8">&#9670;&nbsp;</a></span>hal_kit_phy_num_found()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_kit_phy_num_found </td>
          <td>(</td>
          <td class="paramtype">int8_t *&#160;</td>
          <td class="paramname"><em>num_found</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Number of USB CDC devices found. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">num_found</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>

</div>
</div>
<a id="gad4cd02ff7ae4e75844eab4e84eb61994"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad4cd02ff7ae4e75844eab4e84eb61994">&#9670;&nbsp;</a></span>hal_lock_mutex()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_lock_mutex </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>pMutex</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga53864a301dac6efbdbdc3931aa79e23e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga53864a301dac6efbdbdc3931aa79e23e">&#9670;&nbsp;</a></span>hal_swi_discover_buses()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_swi_discover_buses </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>swi_buses</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>max_buses</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>discover swi buses available for this hardware this maintains a list of logical to physical bus mappings freeing the application.This function is currently not supported. of the a-priori knowledge </p>
<p>discover swi buses available for this hardware this maintains a list of logical to physical bus mappings freeing the application of the a-priori knowledge</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">swi_buses</td><td>- an array of logical bus numbers </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">max_buses</td><td>- maximum number of buses the app wants to attempt to discover </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_UNIMPLEMENTED</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">swi_buses</td><td>- an array of logical bus numbers </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">max_buses</td><td>- maximum number of buses the app wants to attempt to discover </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS </dd></dl>

</div>
</div>
<a id="ga354e6fa757688b73e6fb5293bb835def"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga354e6fa757688b73e6fb5293bb835def">&#9670;&nbsp;</a></span>hal_swi_discover_devices()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_swi_discover_devices </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>bus_num</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a01013.html">ATCAIfaceCfg</a>&#160;</td>
          <td class="paramname"><em>cfg</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>found</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>discover any CryptoAuth devices on a given logical bus number.This function is curently not supported. </p>
<p>discover any CryptoAuth devices on a given logical bus number</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">bus_num</td><td>- logical bus number on which to look for CryptoAuth devices </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">cfg[]</td><td>- pointer to head of an array of interface config structures which get filled in by this method </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">*found</td><td>- number of devices found on this bus </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_UNIMPLEMENTED</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">bus_num</td><td>- logical bus number on which to look for CryptoAuth devices </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">cfg[]</td><td>- pointer to head of an array of interface config structures which get filled in by this method </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">*found</td><td>- number of devices found on this bus </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS </dd></dl>
<p>default configuration, to be reused during discovery process </p>

</div>
</div>
<a id="ga618291172976da96c4f02dc9200c845c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga618291172976da96c4f02dc9200c845c">&#9670;&nbsp;</a></span>hal_swi_idle()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_swi_idle </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a>&#160;</td>
          <td class="paramname"><em>iface</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Send Idle flag via SWI. </p>
<p>idle CryptoAuth device using SWI interface</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>interface of the logical device to idle</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCES</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>interface to logical device to idle </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>
<p>Set SWI pin </p>

</div>
</div>
<a id="gaf406053c1a3f2a86bdc887f2ff4b663d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf406053c1a3f2a86bdc887f2ff4b663d">&#9670;&nbsp;</a></span>hal_swi_init()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_swi_init </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>hal</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a01013.html">ATCAIfaceCfg</a> *&#160;</td>
          <td class="paramname"><em>cfg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>hal_swi_init manages requests to initialize a physical interface. It manages use counts so when an interface has released the physical layer, it will disable the interface for some other use. You can have multiple ATCAIFace instances using the same bus, and you can have multiple ATCAIFace instances on multiple swi buses, so hal_swi_init manages these things and ATCAIFace is abstracted from the physical details. </p>
<p>hal_swi_init manages requests to initialize a physical interface. it manages use counts so when an interface has released the physical layer, it will disable the interface for some other use. You can have multiple ATCAIFace instances using the same bus, and you can have multiple ATCAIFace instances on multiple swi buses, so hal_swi_init manages these things and ATCAIFace is abstracted from the physical details.</p>
<p>Initialize an SWI interface using given config.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">hal</td><td>opaque pointer to HAL data </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cfg</td><td>interface configuration</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code.</dd></dl>
<p>initialize an SWI interface using given config </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">hal</td><td>- opaque ptr to HAL data </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cfg</td><td>- interface configuration </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>
<p>assign GPIO pin </p>

</div>
</div>
<a id="ga9186e5235979216330ae580290872c77"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9186e5235979216330ae580290872c77">&#9670;&nbsp;</a></span>hal_swi_post_init()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_swi_post_init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a>&#160;</td>
          <td class="paramname"><em>iface</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>HAL implementation of SWI post init. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>ATCAIface instance</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>instance </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS </dd></dl>

</div>
</div>
<a id="ga02e9f36723f0feb21d373898728de04b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga02e9f36723f0feb21d373898728de04b">&#9670;&nbsp;</a></span>hal_swi_receive()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_swi_receive </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a>&#160;</td>
          <td class="paramname"><em>iface</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>rxdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t *&#160;</td>
          <td class="paramname"><em>rxlength</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Receive byte(s) via SWI. </p>
<p>HAL implementation of SWI receive function over UART.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>Device to interact with. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">rxdata</td><td>Data received will be returned here. </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">rxlength</td><td>As input, the size of the rxdata buffer. As output, the number of bytes received. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>
<p>Set SWI pin </p>

</div>
</div>
<a id="ga196dbc62546b39ac3e556a0f7f6b7132"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga196dbc62546b39ac3e556a0f7f6b7132">&#9670;&nbsp;</a></span>hal_swi_release()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_swi_release </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>hal_data</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Manages reference count on given bus and releases resource if no more reference(s) exist. </p>
<p>manages reference count on given bus and releases resource if no more refences exist</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">hal_data</td><td>opaque pointer to hal data structure - known only to the HAL implementation</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">hal_data</td><td>- opaque pointer to hal data structure - known only to the HAL implementation </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>
<p>if the use count for this bus has gone to 0 references, disable it. protect against an unbracketed release </p>

</div>
</div>
<a id="gaeb8b8857192a7710785acce0110e8016"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaeb8b8857192a7710785acce0110e8016">&#9670;&nbsp;</a></span>hal_swi_send()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_swi_send </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a>&#160;</td>
          <td class="paramname"><em>iface</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>txdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>txlength</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Send byte(s) via SWI. </p>
<p>HAL implementation of SWI send command over UART.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>interface of the logical device to send data to </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">txdata</td><td>pointer to bytes to send </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">txlength</td><td>number of bytes to send </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>instance </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">txdata</td><td>pointer to space to bytes to send </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">txlength</td><td>number of bytes to send </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>
<p>Skip the Word Address data as SWI doesn't use it</p>
<p>Set SWI pin</p>
<p>Send Command Flag</p>
<p>Send the remaining bytes </p>

</div>
</div>
<a id="gaae96ea936a2e85d0bcb81b7868ee007d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaae96ea936a2e85d0bcb81b7868ee007d">&#9670;&nbsp;</a></span>hal_swi_send_flag()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_swi_send_flag </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a>&#160;</td>
          <td class="paramname"><em>iface</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>HAL implementation of SWI send one byte over UART. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>instance </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>bytes to send </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>

</div>
</div>
<a id="ga252e365a30f2583dae8a8eac073a9f53"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga252e365a30f2583dae8a8eac073a9f53">&#9670;&nbsp;</a></span>hal_swi_sleep()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_swi_sleep </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a>&#160;</td>
          <td class="paramname"><em>iface</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Send Sleep flag via SWI. </p>
<p>sleep CryptoAuth device using SWI interface</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>interface of the logical device to sleep</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>interface to logical device to sleep </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>
<p>Set SWI pin </p>

</div>
</div>
<a id="gafc428980ec95e37eee94813db229fe70"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafc428980ec95e37eee94813db229fe70">&#9670;&nbsp;</a></span>hal_swi_wake()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_swi_wake </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a>&#160;</td>
          <td class="paramname"><em>iface</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Send Wake flag via SWI. </p>
<p>wake up CryptoAuth device using SWI interface</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>interface of the logical device to wake up</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>interface to logical device to wakeup </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>
<p>Set SWI pin</p>
<p>Generate Wake Token</p>
<p>Wait tWHI + tWLO </p>

</div>
</div>
<a id="ga31fd8170a49623686543f6247b883bd1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga31fd8170a49623686543f6247b883bd1">&#9670;&nbsp;</a></span>hal_unlock_mutex()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> hal_unlock_mutex </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>pMutex</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="gaf31b095e9faac0c43ba3f0403bc52cf4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf31b095e9faac0c43ba3f0403bc52cf4">&#9670;&nbsp;</a></span>i2c_read()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> i2c_read </td>
          <td>(</td>
          <td class="paramtype">I2C_MODULE&#160;</td>
          <td class="paramname"><em>i2c_id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>address</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga8fc6a91c0d59cdf46f1bdf33ca8ab048"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8fc6a91c0d59cdf46f1bdf33ca8ab048">&#9670;&nbsp;</a></span>i2c_write()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void i2c_write </td>
          <td>(</td>
          <td class="paramtype">I2C_MODULE&#160;</td>
          <td class="paramname"><em>i2c_id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>address</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="gae9acffb3ff9a025924457fce5c24a709"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae9acffb3ff9a025924457fce5c24a709">&#9670;&nbsp;</a></span>kit_id_from_devtype()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char kit_id_from_devtype </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00988.html#gafb234ccd6a80d09c0efbe336c2354267">ATCADeviceType</a>&#160;</td>
          <td class="paramname"><em>devtype</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Kit Protocol is key </p>

</div>
</div>
<a id="gaeaee19ff7623f0eab9839e68dae583af"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaeaee19ff7623f0eab9839e68dae583af">&#9670;&nbsp;</a></span>kit_idle()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> kit_idle </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a>&#160;</td>
          <td class="paramname"><em>iface</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Call the idle for kit protocol. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>the interface object to send the bytes over </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>

</div>
</div>
<a id="ga8fb98d1c372e7e75f99a2f7d1182b877"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8fb98d1c372e7e75f99a2f7d1182b877">&#9670;&nbsp;</a></span>kit_init()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> kit_init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a>&#160;</td>
          <td class="paramname"><em>iface</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>HAL implementation of kit protocol init. This function calls back to the physical protocol to send the bytes. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>instance </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>

</div>
</div>
<a id="ga8bf59f4218d312568b769b8b8e5c563e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8bf59f4218d312568b769b8b8e5c563e">&#9670;&nbsp;</a></span>kit_parse_rsp()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> kit_parse_rsp </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>pkitbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>nkitbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>kitstatus</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>rxdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>datasize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Parse the response ascii from the kit. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">pkitbuf</td><td>pointer to ascii kit protocol data to parse </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">nkitbuf</td><td>length of the ascii kit protocol data </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">kitstatus</td><td>status of the ascii device </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">rxdata</td><td>pointer to the binary data buffer </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">datasize</td><td>size of the pointer to the binary data buffer </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>

</div>
</div>
<a id="ga11ee6ec0b2b7eb2ff2472f92208c3205"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga11ee6ec0b2b7eb2ff2472f92208c3205">&#9670;&nbsp;</a></span>kit_phy_num_found()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> kit_phy_num_found </td>
          <td>(</td>
          <td class="paramtype">int8_t *&#160;</td>
          <td class="paramname"><em>num_found</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Number of USB HID devices found. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">num_found</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_STATUS</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">num_found</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">num_found</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>SUCCESS </dd></dl>

</div>
</div>
<a id="gaae5e94b6080d4279474eb3e98bc58901"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaae5e94b6080d4279474eb3e98bc58901">&#9670;&nbsp;</a></span>kit_phy_receive() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> kit_phy_receive </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a>&#160;</td>
          <td class="paramname"><em>iface</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>rxdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>rxsize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>HAL implementation of kit protocol receive data.It is called by the top layer. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>instance </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">rxdata</td><td>pointer to space to receive the data </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">rxsize</td><td>ptr to expected number of receive bytes to request </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>

</div>
</div>
<a id="gabb507252b1011037d6d2cce7d91b01d0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabb507252b1011037d6d2cce7d91b01d0">&#9670;&nbsp;</a></span>kit_phy_receive() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> kit_phy_receive </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a>&#160;</td>
          <td class="paramname"><em>iface</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>rxdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>rxsize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>HAL implementation of kit protocol send over USB HID. </p>
<p>HAL implementation of kit protocol receive.This function is called by the top layer.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>instance </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">rxdata</td><td>pointer to space to receive the data </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">rxsize</td><td>ptr to expected number of receive bytes to request </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_STATUS</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>instance </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">rxdata</td><td>pointer to space to receive the data </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">rxsize</td><td>ptr to expected number of receive bytes to request </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>

</div>
</div>
<a id="gabd452e3edb32ea0d22653c182b4e1198"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabd452e3edb32ea0d22653c182b4e1198">&#9670;&nbsp;</a></span>kit_phy_send() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> kit_phy_send </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a>&#160;</td>
          <td class="paramname"><em>iface</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>txdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>txlength</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>HAL implementation of send over USB HID. </p>
<p>HAL implementation of send over Kit protocol.This function is called by the top layer.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>instance </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">txdata</td><td>pointer to bytes to send </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">txlength</td><td>number of bytes to send </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_STATUS</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>instance </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">txdata</td><td>pointer to bytes to send </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">txlength</td><td>number of bytes to send </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>

</div>
</div>
<a id="ga020fb0be6c73515122cf4b9f749fd97d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga020fb0be6c73515122cf4b9f749fd97d">&#9670;&nbsp;</a></span>kit_phy_send() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> kit_phy_send </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a>&#160;</td>
          <td class="paramname"><em>iface</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>txdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>txlength</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>HAL implementation of kit protocol send .It is called by the top layer. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>instance </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">txdata</td><td>pointer to bytes to send </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">txlength</td><td>number of bytes to send </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>

</div>
</div>
<a id="ga09a86ccc517208f9c9a057ea569e2a18"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga09a86ccc517208f9c9a057ea569e2a18">&#9670;&nbsp;</a></span>kit_receive()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> kit_receive </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a>&#160;</td>
          <td class="paramname"><em>iface</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>rxdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t *&#160;</td>
          <td class="paramname"><em>rxsize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>HAL implementation to receive bytes and unwrap from kit protocol. This function calls back to the physical protocol to receive the bytes. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>instance </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">rxdata</td><td>pointer to space to receive the data </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">rxsize</td><td>ptr to expected number of receive bytes to request </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>

</div>
</div>
<a id="gac9dc79f9b5281fbe82c20b6af9de76b7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac9dc79f9b5281fbe82c20b6af9de76b7">&#9670;&nbsp;</a></span>kit_send()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> kit_send </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a>&#160;</td>
          <td class="paramname"><em>iface</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>txdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>txlength</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>HAL implementation of kit protocol send. This function calls back to the physical protocol to send the bytes. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>instance </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">txdata</td><td>pointer to bytes to send </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">txlength</td><td>number of bytes to send </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>

</div>
</div>
<a id="gaf6054a0c971830411d5008b94923bdd8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf6054a0c971830411d5008b94923bdd8">&#9670;&nbsp;</a></span>kit_sleep()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> kit_sleep </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a>&#160;</td>
          <td class="paramname"><em>iface</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Call the sleep for kit protocol. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>the interface object to send the bytes over </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>

</div>
</div>
<a id="gaf7ce58d02b067b956abd32127f5519e9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf7ce58d02b067b956abd32127f5519e9">&#9670;&nbsp;</a></span>kit_wake()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> kit_wake </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00989.html#ga75c11126f3fe81df3d6c27f5bb393303">ATCAIface</a>&#160;</td>
          <td class="paramname"><em>iface</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Call the wake for kit protocol. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>the interface object to send the bytes over </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>

</div>
</div>
<a id="ga0f09f4b79c681f54b88a8f71bca0d4c4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0f09f4b79c681f54b88a8f71bca0d4c4">&#9670;&nbsp;</a></span>kit_wrap_cmd()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> kit_wrap_cmd </td>
          <td>(</td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>txdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>txlen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>pkitcmd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>nkitcmd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char&#160;</td>
          <td class="paramname"><em>target</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Wrap binary bytes in ascii kit protocol. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">txdata</td><td>Binary data to wrap. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">txlen</td><td>Length of binary data in bytes. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">pkitcmd</td><td>ASCII kit protocol wrapped data is return here. </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">nkitcmd</td><td>As input, the size of the pkitcmd buffer. As output, the number of bytes returned in the pkitcmd buffer. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">target</td><td>Target char to use 's' for SHA devices, 'e' for ECC devices. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>

</div>
</div>
<a id="ga1473b18d902ce22c6b22d04ff5a7ef02"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1473b18d902ce22c6b22d04ff5a7ef02">&#9670;&nbsp;</a></span>strnchr()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* strnchr </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>count</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>c</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga0b1aad3936bf003686d8db7fa2be5132"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0b1aad3936bf003686d8db7fa2be5132">&#9670;&nbsp;</a></span>swi_uart_deinit()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> swi_uart_deinit </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00993.html#ga257ed552f7d68eb1e5d3ca7baa01559a">ATCASWIMaster_t</a> *&#160;</td>
          <td class="paramname"><em>instance</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Implementation of SWI UART deinit. </p>
<p>HAL implementation of SWI UART deinit.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>instance </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>instance </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>

</div>
</div>
<a id="gad640b598d581ee7c8a4c804bee602906"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad640b598d581ee7c8a4c804bee602906">&#9670;&nbsp;</a></span>swi_uart_discover_buses()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void swi_uart_discover_buses </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>swi_uart_buses</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>max_buses</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>discover UART buses available for this hardware this maintains a list of logical to physical bus mappings freeing the application of the a-priori knowledge </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">swi_uart_buses</td><td>- an array of logical bus numbers </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">max_buses</td><td>- maximum number of buses the app wants to attempt to discover </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga003b63648f1a5f9eba274760559688f2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga003b63648f1a5f9eba274760559688f2">&#9670;&nbsp;</a></span>swi_uart_init()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> swi_uart_init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00993.html#ga257ed552f7d68eb1e5d3ca7baa01559a">ATCASWIMaster_t</a> *&#160;</td>
          <td class="paramname"><em>instance</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Implementation of SWI UART init. </p>
<p>HAL implementation of SWI UART init.</p>
<ul>
<li>this HAL implementation assumes you've included the ASF SERCOM UART libraries in your project, otherwise, the HAL layer will not compile because the ASF UART drivers are a dependency *<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>instance </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code.</dd></dl>
</li>
<li>this HAL implementation assumes you've included the START SERCOM UART libraries in your project, otherwise, the HAL layer will not compile because the START UART drivers are a dependency *<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>instance </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>
</li>
</ul>

</div>
</div>
<a id="gacc2a96c86ce4c07249b81bc6a7eb2e41"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacc2a96c86ce4c07249b81bc6a7eb2e41">&#9670;&nbsp;</a></span>swi_uart_mode()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void swi_uart_mode </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00993.html#ga257ed552f7d68eb1e5d3ca7baa01559a">ATCASWIMaster_t</a> *&#160;</td>
          <td class="paramname"><em>instance</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>mode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>implementation of SWI UART change mode. </p>
<p>HAL implementation of SWI UART change mode.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>instance </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">mode</td><td>(TRANSMIT_MODE or RECEIVE_MODE) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga93f3dab17c14f71641ca970998ede823"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga93f3dab17c14f71641ca970998ede823">&#9670;&nbsp;</a></span>swi_uart_receive_byte()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> swi_uart_receive_byte </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00993.html#ga257ed552f7d68eb1e5d3ca7baa01559a">ATCASWIMaster_t</a> *&#160;</td>
          <td class="paramname"><em>instance</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>HAL implementation of SWI UART receive bytes over ASF. This function receive one byte over UART. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>instance </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">data</td><td>pointer to space to receive the data </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>instance </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">data</td><td>pointer to space to receive the data </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>

</div>
</div>
<a id="ga4a4d491006d9683d67838963706ac9c1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4a4d491006d9683d67838963706ac9c1">&#9670;&nbsp;</a></span>swi_uart_send_byte()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> swi_uart_send_byte </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00993.html#ga257ed552f7d68eb1e5d3ca7baa01559a">ATCASWIMaster_t</a> *&#160;</td>
          <td class="paramname"><em>instance</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>HAL implementation of SWI UART send byte over ASF. This function send one byte over UART. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>instance </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>byte to send </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>instance </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>number of byte to send </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ATCA_SUCCESS on success, otherwise an error code. </dd></dl>

</div>
</div>
<a id="gaba296f70baf68b768d6c4bb9cf7ba67d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaba296f70baf68b768d6c4bb9cf7ba67d">&#9670;&nbsp;</a></span>swi_uart_setbaud()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void swi_uart_setbaud </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00993.html#ga257ed552f7d68eb1e5d3ca7baa01559a">ATCASWIMaster_t</a> *&#160;</td>
          <td class="paramname"><em>instance</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>baudrate</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>implementation of SWI UART change baudrate. </p>
<p>HAL implementation of SWI UART change baudrate.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>instance </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">baudrate</td><td>(typically 230400 , 160000 or 115200)</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>instance </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">baudrate</td><td>(typically 230400 or 115200) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a id="gabc65c7c6bd64530b95fa72082f1e0390"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabc65c7c6bd64530b95fa72082f1e0390">&#9670;&nbsp;</a></span>_gCdc</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00993.html#ga2df85bfd309840b4c9a5087e053d4811">atcacdc_t</a> _gCdc</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="gab97bfae6ae6051d081edf51bb45eea05"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab97bfae6ae6051d081edf51bb45eea05">&#9670;&nbsp;</a></span>_gHid <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00993.html#ga2416cca7ee952e679d466e3349d65035">atcahid_t</a> _gHid</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="gab97bfae6ae6051d081edf51bb45eea05"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab97bfae6ae6051d081edf51bb45eea05">&#9670;&nbsp;</a></span>_gHid <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00993.html#ga2416cca7ee952e679d466e3349d65035">atcahid_t</a> _gHid</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="gab97bfae6ae6051d081edf51bb45eea05"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab97bfae6ae6051d081edf51bb45eea05">&#9670;&nbsp;</a></span>_gHid <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00993.html#ga2416cca7ee952e679d466e3349d65035">atcahid_t</a> _gHid</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="gabe78755474c1323a5ac7b3dd6d03dedf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabe78755474c1323a5ac7b3dd6d03dedf">&#9670;&nbsp;</a></span>dev</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* dev = &quot;/dev/ttyACM0&quot;</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="gaa7deec7f5d89dfb4f9746d050b0926f9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa7deec7f5d89dfb4f9746d050b0926f9">&#9670;&nbsp;</a></span>i2c_bus_ref_ct</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int i2c_bus_ref_ct = 0</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga95dac4460cd54b4b073285ebc79d215b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga95dac4460cd54b4b073285ebc79d215b">&#9670;&nbsp;</a></span>i2c_hal_data</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00993.html#gae8f36006f14bf6a9f4914bac69ed9f98">ATCAI2CMaster_t</a>* i2c_hal_data[<a class="el" href="a00539.html#af89a7a4080a47aa10a5504291db285bf">MAX_I2C_BUSES</a>]</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="gaab85cb460831e8b7e4d3a5315b31c596"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaab85cb460831e8b7e4d3a5315b31c596">&#9670;&nbsp;</a></span>pin_conf</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct port_config pin_conf</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga218b4f7c6cc2681a99c23a3b089d68b1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga218b4f7c6cc2681a99c23a3b089d68b1">&#9670;&nbsp;</a></span>speed</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int speed = B115200</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
  </ul>
</div>
</body>
</html>
